IAB(In App Billing)アプリケーションを作成しました。プレミアム購入はGoogleダッシュボードに送信され、そのアイテムの請求書が表示され、ユーザーはこのアイテムを2回購入することはできません。これは大丈夫です。Google In App BIllingはgetPurchasesを呼び出すときにNullを返します
しかし、下のコードを使用することによって、私はpremiumPurchaseは常にヌルあるので、ユーザは、プレミアムであるかないことを理解することはできません。私は、デバイスを再起動し、Googleのキャッシュがプレイオフにして、私は私が正しいアカウントでログインしていることを確信していた
mHelper.queryInventoryAsync(new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
if (mHelper == null) return;
if (result.isFailure()) {
return;
}
Purchase premiumPurchase = inventory.getPurchase(SKU_PREMUIM);
if(premiumPurchase!=null) {
//Toast.makeText(getApplicationContext(),"permuim",Toast.LENGTH_SHORT).show();
lblIsPremuim.setText("You are Premium");
}
else{
lblIsPremuim.setText("You are Not Premium");
Toast.makeText(getApplicationContext(),"not permuim",Toast.LENGTH_SHORT).show();
}
}
});
(私は、セットアップ終了リスナー上で、このメソッドを呼び出しています)。 Base64の公開鍵は間違いなく正解であり、この問題については言及されているが解決策は見つけられていないStack-Over-Flowの投稿をすべて読んだ。私はアップロードされたアプリと同じバージョン名とバージョンコードと同じキーストアを使用しています。私はAndroidManifest.xmlファイル操作することで問題を解決していたいくつかの日後の最後