我目前正在開發一款遊戲並嘗試實施Google Play的應用內結算V3。我遵循了應用內示例,並使用IabHelper
。但是,在設備中運行應用程序時,出現問題。我發現在mHelper.startSetup
之後,onServiceDisconnected
和onServiceConnected
都沒有被調用。所以我將mContext.bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE);
的結果打印在IabHelper類中。結果是false
。使用IabHelper時無法綁定InAppBillingService
這裏是我的代碼:
private IabHelper mHelper;
// MainActivity onCreate
protected void onCreate(Bundle savedInstanceState){
// ...
mHelper = new IabHelper(this, base64EncodedPublicKey);
mHelper.enableDebugLogging(true);
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
return;
}
if (mHelper == null) return;
}
});
}
而且在方法IabHelper類startSetup
:
public void startSetup(final OnIabSetupFinishedListener listener) {
// ...
Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
serviceIntent.setPackage("com.android.vending");
if (!mContext.getPackageManager().queryIntentServices(serviceIntent, 0).isEmpty()) {
// service available to handle that Intent
boolean bRes = mContext.bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE);
// ### I printed the result here it was false
Log.i("IAB", "IAB Service Result = " + bRes);
}
else {
// no service available to handle that Intent
if (listener != null) {
listener.onIabSetupFinished(
new IabResult(BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE,
"Billing service unavailable on device."));
}
}
}
我不知道這個問題。我已經做了:
- 添加權限:com.android.vending.BILLING
- 從樣品.aidl文件複製到/ src目錄/ COM /安卓/自動售貨機/計費
- 我的Android設置爲Android的目標-22
任何想法有什麼不對? 在此先感謝。
是的,我以前做過這個工作。我將「Trival」項目的util文件夾複製到我的文件夾中,並將其重命名爲包名稱。 – Sudo