アプリ内購入時にアプリでAdMob広告を削除しようとしています。広告を非表示にして無効にするコードは既に用意されています。アプリ内課金も実装されています。ユーザーが購入した場合は、広告を非表示にして無効にする方法を見つける必要があります。SharedPreferencesを使用してアプリ内購入の広告を無効にする
私はSharedPreferences
に格納されているブール値を持っています。これは、アプリ内購入が成功すると、アプリ内の広告を完全に削除するはずです。 これはで動作しますが、アプリを終了してもう一度開いたときに広告が表示され、もう一度購入を実行することはできません。
onCreate()
方法で
:アプリ内課金の実装
mHelper = new IabHelper(this, base64EncodedPublicKey);
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
} else {
}
}
});
prefs = this.getSharedPreferences("com.wsandhu.conjugation", Context.MODE_PRIVATE);
if (adFree) {
prefs.edit().putBoolean("adFree", true).commit();
} else {
adFree = prefs.getBoolean("adFree", false);
}
:私は本当に私が間違ってやっているのか分からない
/* FOR IN-APP BILLING */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (!mHelper.handleActivityResult(requestCode,
resultCode, data)) {
super.onActivityResult(requestCode, resultCode, data);
}
}
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener =
new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
if (result.isFailure()) {
// Handle error
return;
} else if (purchase.getSku().equals(ITEM_SKU)) {
// Sets purchased boolean to true
adFree = true;
// Restart app
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
}
};
IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener
= new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result,
Inventory inventory) {
if (result.isFailure()) {
// Handle failure
} else {
Purchase purchase = inventory.getPurchase(ITEM_SKU);
if (purchase != null) {
} else {
}
}
}
};
public void buyFullVersion() {
mHelper.launchPurchaseFlow(this, ITEM_SKU, 10001,
mPurchaseFinishedListener, "mypurchasetoken");
}
...私はアプリをアップロードしました現在10回以上のGoogle Playアルファテストが行われており、2時間待つたびに少し不満を感じていますが、動作しません。 :Pヘルプ?ここで
簡単な質問私はこれをテストする前に:なぜあなたがやります'getBoolean(" adFree "、false)'を使用するif文の広告を無効にしますか?真偽値は真ではありませんか? – wasimsandhu
@wasimsandhu:はい、ユーザーが初めてアプリを起動したとき、または購入が完了していないときは、adFreeの値はfalseになり、 'getBoolean(" adFree "、false)'はfalseの代わりにfalseを返します。 –
したがって、そのブロックでは、無効になっていない、そうですか? – wasimsandhu