2012-12-18 23 views
5

我第一次使用Google for Android的應用內結算。但是,如果用戶沒有安裝互聯網連接或沒有安裝谷歌框架(例如使用自定義ROM)並且可能有其他場合(如錯誤/舊市場版本等) 此方法(在提供的IabHelper類中):應用內結算v3,bindService()意圖無法找到

 mContext.bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), 
         mServiceConn, Context.BIND_AUTO_CREATE); 

不工作,沒有服務得到建立。從「活動管理器」的小調試信息:

12-17 19:58:31.184: W/ActivityManager(76): Unable to start service Intent { act=com.android.vending.billing.InAppBillingService.BIND }: not found 

有沒有人找到任何方法來「抓」這個錯誤以有意義的方式,或任何解決方法,以檢查是否意圖/包可用?

在此先感謝。

回答

9

哎呀,發現後不久,回答自己:

你必須檢查是否意圖接收器可通過實施方法就像這裏建議: [我可以用這個意圖 - 博文] [1]

(編輯)但是,此方法需要進行一些嚴重的更改才能應用於結算服務,因爲原始方法僅檢查默認意圖,這不是我們想要的。

然而,我的實現如下所示,並似乎工作,至少對這些設備,規格等我測試:(只測試器V3在APP計費)

public static boolean isBillingAvailable(Context context) { 
    final PackageManager packageManager = context.getPackageManager(); 
    final Intent intent = new Intent("com.android.vending.billing.InAppBillingService.BIND"); 
    List<ResolveInfo> list = packageManager.queryIntentServices(intent, 0); 
    return list.size() > 0; 
} 
+0

嘿,我試圖實施應用內結算版本3。開始閱讀文檔,但沒有在我的SDK中獲得任何庫項目來啓動它。如果您可以實施此新版本的應用內結算,請提供幫助。我的電子郵件ID([email protected]),如果您可以發送一些代碼或庫項目來閱讀。謝謝:) – LuminiousAndroid

+1

仍然是一個問題:在家族成員的設備上,它表示計費在那裏也不可用。它是Android 4.0 HTC感受與Palystore等任何想法? – Aeefire

+0

不知道,通常我準備好幫助,但這個tym我需要你的幫助:( – LuminiousAndroid