如何使用编程方式设置 Admob 应用程序 ID (19.1.0)?

8

19.1.0 版本 之前,可以通过编程方式设置应用程序 ID,如下所示:

MobileAds.initialize (Context context, String appID)

新的方法是:
initialize(Context, OnInitializationCompleteListener)

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

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

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

2个回答

6

您需要在清单文件中添加APPLICATION_ID,可以在AdMob UI中找到您的应用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>

之后您可以通过编程来更改它。

 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());
    }

3
这不会更新实际数值。如果我再次运行相同的方法,它会显示旧数值。 - Divyesh Patel
1
我们如何确保Admob实际使用了新值? - mrzbn
这真的是解决方法吗?能否更改应用程序ID?如果可以,为什么答案没有被批准? - Udhaya
APP ID 的实际值未更改。 - Ammar Abdullah
如果我们有两个广告,例如插页式广告和横幅广告,那么如何将这两个app_id添加到清单文件中?我们可以使用两个<meta-data>标签并分别设置com.google.android.gms.ads.APPLICATION_ID吗? - Mediad
显示剩余2条评论

-1
你只需要在AndroidManifest.xml中设置app-id,SDK会自动获取相同的值。
<manifest>
    <application>
        <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="

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


2
我不想将它放在清单中,因为我想从服务器动态更改它。你知道有什么解决方案吗? - gturedi
你找到任何解决方案了吗? - Divyesh Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接