私のアプリでアプリ内課金を実装しようとしていますが、アプリ内課金自体がうまく機能しています。アプリ内課金広告削除:広告が表示されない
ただし、広告はプレミアムユーザーのみ無効にする必要がありますが、私は何とか完全に無効にしました。私はより良いあなたが理解できるように私のコードを投稿します:
これは私のIabPurchaseFinished()
方法です:あなたは、それは文字列値状態を購入しとしてにSharedPreferencesを節約できます見ることができるように
@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();
}
}
。
私はこのようにそれをしなかった私の広告を持っている活動で、今:
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*
を確認することができたよう、私はそこにはない場合に設定 "自由"
は、その後、私はif
声明の中で、私の広告を持っている:
if (prefs.equals("free"))
SharedPreferencesの文字列が「フリー」である、つまり「購入済み」でない場合、つまりユーザーがinアプリを購入していないことが示されていると考えられます。
問題は、In Appを持つアカウントでアクセスしても、広告が表示されないことです。どのように私はそれを修正することができますか?
明らかに私は、Developer's ConsoleにアップロードされたSigned Apkを使ってテストしましたが、すべてがgoogleのtesting In-App Billingガイドラインに従って設定されています。