【问题标题】:How to set Admob appID programmatically (19.1.0)?如何以编程方式设置 Admob appID (19.1.0)?
【发布时间】:2020-05-03 15:35:57
【问题描述】:

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

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?

【问题讨论】:

    标签: android admob


    【解决方案1】:

    您必须将 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>
    

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

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

    【讨论】:

    • 这不会更新实际值。如果我再次运行相同的方法,它会显示旧值。
    【解决方案2】:

    您只需在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

    【讨论】:

    • 我不想把它放在清单上,因为我想从服务器动态地改变它。你知道有什么解决办法吗?
    • 你找到解决办法了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多