gpt4 book ai didi

java - 应用内结算广告移除 : Ads are not showing

转载 作者:行者123 更新时间:2023-11-30 01:00:54 25 4
gpt4 key购买 nike

我正在尝试在我的应用中实现应用内结算,应用内结算本身运行良好。

虽然它应该禁用广告仅针对高级用户,但我以某种方式完全禁用了它们。我将发布我的代码以更好地让您理解:

这是我的IabPurchaseFinished() 方法:

@Override
public void onIabPurchaseFinished(IabResult result, Purchase info) {

if (!verifyDeveloperPayload(info)) {
Toast.makeText(this, R.string.error_purchasing, Toast.LENGTH_LONG).show();
}

Toast.makeText(this, R.string.premium_bought, Toast.LENGTH_LONG).show();

if (info.getSku().equals("chords_premium")) {

/** salva isPremium tra SharedPreferences */
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("status", "purchased");
editor.apply();
}
}

如您所见,它将字符串值 status 保存到 SharedPreferences 作为 purchased

现在在我有广告的 Activity 中,我是这样做的:

final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.getString("status", "free");


/** gestisce le pubblicita */
if (prefs.equals("free")) {
MobileAds.initialize(getApplicationContext(), "ca-app-pub-6723047396589178/2654753246");

AdView listBanner = (AdView) findViewById(R.id.chords_list_banner);
AdRequest adRequest = new AdRequest.Builder().build();
listBanner.loadAd(adRequest);

/** carica Ad a tutto schermo */
chordsListAd = new InterstitialAd(this);
chordsListAd.setAdUnitId("ca-app-pub-6723047396589178/7447672046");
requestNewInterstitial();


chordsListAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
requestNewInterstitial();
}
});
}

如您所知,我首先检查我的*SharedPreferences* 以查看是否有“status”,如果没有,我将其设置为“free”

然后我将我的广告放在 if 语句中:

if (prefs.equals("free"))

因此,我认为如果 SharedPreferences 中的字符串是“免费”,或者换句话说,它不是“已购买”,则它们会显示,这意味着用户尚未购买 App。

问题是无论我是否使用具有 In App 的帐户访问,广告都不会显示。关于如何修复它的任何想法?

显然,我已经使用上传到开发者控制台的签名 Apk 进行了测试,所有设置均根据 testing In-App Billing谷歌指南。

最佳答案

你在这里犯了一个小错误:

if (prefs.equals("free"))

prefs 定义为 SharedPreferences prefs,它永远不是 String,这意味着它始终为 false

你真正想写的是这张支票:

String status = prefs.getString("status", "free");

/** gestisce le pubblicita */
if (status.equals("free")) {

关于java - 应用内结算广告移除 : Ads are not showing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39430145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com