2012-12-18 19 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