私は専門家ではありませんが、ここで助けようとします。購入したアイテムを復元するには、購入したアイテムの SKU が必要になると思います。そして、それをテストするには、アプリの実際の SKU を作成する必要があります。これを行うには、署名済み apk をベータ テストに追加し、ストアの一覧に詳細を追加します。その後、アプリ内製品セクションで購入可能なアイテムに関する詳細を追加できます。これにより、アプリ内のすべての購入可能なアイテムにタイトル、説明、コスト、および SKU (製品 ID) を割り当てます。アイテムを復元するには、購入したアイテムの SKU が必要です。それだけです。
次の手順でそれを行うことができます。
- 次の手順に従って作業を完了しますが、機能をテストするには署名済みの apk が必要です (開発者コンソールにアップロードするものと同じです)。
- IabHelper クラスで独自のメソッドを作成し、それを getPurchasesDetail() と呼びましょう。このメソッドでは、次のコード行を使用します。
Bundle ownedItems=mService.getPurchases(3, mContext.getPackageName(), "inapp", null);
ArrayList<String> ownedSkus=new ArrayList<String>();
int response = ownedItems.getInt("RESPONSE_CODE");
if (response == 0)
{
ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
}
上記の行により、購入した SKU のリストが arraylist に表示され、メソッドの戻り値の型が配置され、購入を復元する必要があるクラスで取得されます。
- 購入を復元したいクラスで、次の操作を行います。
iabHelper=new IabHelper(this, "you public here");
iabHelper.startSetup(new OnIabSetupFinishedListener()
{
@Override
public void onIabSetupFinished(IabResult result)
{
if(result.isSuccess())
{
try
{
ownedSkus=iabHelper.getPurchasesDetail();//get purchase list
//Now you have the purchased SKU list in an arraylist, you can use SharedPreferences or something else for the further process.
}
catch (RemoteException e) {
e.printStackTrace();
}
}
}
});
4. 次に、このコードと公開鍵を使用して署名済みの apk を開発者コンソールにアップロードし (ベータ テスト段階)、同じ apk を使用して、これまでに行われた実装を確認します。ただし、復元する前にアイテムを購入することを忘れないでください。
これが役立つことを願っています。ありがとう。