[英]Android inapp billing responseList is empty
我在我的應用中定義了一些應用內產品。 我已將 apk 上傳到 Google Play,並在 Google Play 上添加了應用內購買產品。
我的ServiceConnection
定義如下:
ServiceConnection mServiceConn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
mService = null;
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mService = IInAppBillingService.Stub.asInterface(service);
connect();
}
};
onServiceConnected
函數被調用, bindService
返回true。
接下來是connect
功能。
public void connect() {
new Thread(new Runnable() {
public void run() {
try {
// Purchase type is "inapp", as required by API v3
Bundle skuDetails = mService.getSkuDetails(3, PACKET, "inapp", querySkus);
}
int response = skuDetails.getInt("RESPONSE_CODE");
Log.e("IAP connect", response + "");
if (response == 0) {
ArrayList<String> responseList = skuDetails.getStringArrayList("DETAILS_LIST");
Log.e("size list", responseList.size()+"");
...
}
}
} catch (RemoteException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
}).start();
}
此處的 PACKET 設置為getPackageName()
。 響應代碼為 0,但日志打印列表的大小為 0。我不知道為什么列表為空,因為我在 Google Play 中總共輸入了 5 個項目,並且每個項目都處於活動狀態。 我現在已經等了 2 天並用三個設備進行了測試,但仍然沒有任何項目通過。
我幾乎嘗試了我能想到的一切,所以歡迎提出任何建議。
您需要將您的應用程序發布到 Beta/Alpha 版才能訪問應用內計費功能。 最近改了,但他們沒有公布:)
http://developer.android.com/google/play/billing/billing_testing.html#draft_apps
值得一提的是,您不必上傳每個新版本即可對其進行測試。 只需使用相同的 versionCode 和 versionName,如果應用程序發布,它將起作用。
您的代碼看起來不錯。
確保查詢正確的 SKU。 querySkus 中的單個項目必須與應用內產品的 id 完全匹配。
其次確保查詢正確的類型如果項目。 如果您將“應用內產品”配置為要在開發者控制台中購買的汽車,請像您一樣使用“應用內產品”。 如果您有訂閱,請使用“訂閱”作為針對 Google Play 的查詢類型。
希望這可以幫助。
我在舊設備上遇到了問題。 刪除 Play Services 應用程序數據修復了該問題。
所以我們只需要為糟糕的評論做好准備......
我遇到了同樣的問題,修復方法是將我的訂閱狀態設置為“活動”。 幾分鍾后,它終於奏效了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.