如何以编程方式设置 Admob appID (19.1.0)?

act*_*ity 5 android admob

19.1.0 版本之前,可以像这样以编程方式设置 appID:

MobileAds.initialize (Context context, String appID)
Run Code Online (Sandbox Code Playgroud)

新方法是

initialize(Context, OnInitializationCompleteListener)
Run Code Online (Sandbox Code Playgroud)

在内部,该方法null作为 appID传递:

public static void initialize(Context var0, OnInitializationCompleteListener var1) {
    zzxw.zzqq().zza(var0, (String)null, var1);
}
Run Code Online (Sandbox Code Playgroud)

这是否意味着不应再以编程方式设置 appID?

Muj*_*han 6

您必须将 APPLICATION_ID 放在清单文件中,您可以在 AdMob UI 中找到您的 App ID。对于 android:value,请在引号中插入您自己的 AdMob 应用 ID,如下所示。

<manifest>
<application>
    <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
Run Code Online (Sandbox Code Playgroud)

之后,您可以以编程方式更改它

 try {
        ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
        Bundle bundle = ai.metaData;
        String myApiKey = bundle.getString("com.google.android.gms.ads.APPLICATION_ID");
        Log.d(TAG, "Name Found: " + myApiKey);
        ai.metaData.putString("com.google.android.gms.ads.APPLICATION_ID", "ca-app-pub-3940256099942544~3347511713");//you can replace your key APPLICATION_ID here
        String ApiKey = bundle.getString("com.google.android.gms.ads.APPLICATION_ID");
        Log.d(TAG, "ReNamed Found: " + ApiKey);
    } catch (PackageManager.NameNotFoundException e) {
        Log.e(TAG, "Failed to load meta-data, NameNotFound: " + e.getMessage());
    } catch (NullPointerException e) {
        Log.e(TAG, "Failed to load meta-data, NullPointer: " + e.getMessage());
    }
Run Code Online (Sandbox Code Playgroud)

  • 这不会更新实际值。如果我再次运行相同的方法,它会显示旧值。 (3认同)

gsa*_*kar -2

您只需在其中设置应用程序 ID,AndroidManifest.xmlSDK 就会自动获取该应用程序 ID。

\n\n
<manifest>\n\xc2\xa0 \xc2\xa0 <application>\n\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->\n\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 <meta-data\n\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 android:name="com.google.android.gms.ads.APPLICATION_ID"\n\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 android:value="\n
Run Code Online (Sandbox Code Playgroud)\n\n

参考: https: //developers.google.com/admob/android/quick-start

\n

  • 我不想把它放在清单中,因为我想从服务器动态更改它。你知道有什么解决办法吗? (2认同)