我有一个用Java编写的应用程序,我刚刚启用了许可证验证库(LVL)。在启动期间,我调用LVL将“打电话回家”发送到Google Play,以确保该应用获得正确许可,以便应用可以采取措施。
此代码已经过各种响应和各种设备的测试,并且可以正常运行。除了一个设备。在此设备上连续失败,并显示无法绑定到服务的错误。
违规行是Google在LVL SDK中提供的LicenseChecker.java的一部分:
boolean bindResult = mContext
.bindService(
new Intent(
new String(Base64.decode("Y29tLmFuZHJvaWQudmVuZGluZy5saWNlbnNpbmcuSUxpY2Vuc2luZ1NlcnZpY2U="))),
this, // ServiceConnection.
Context.BIND_AUTO_CREATE);
Base64字符串包含“com.android.vending.licensing.ILicensingService”(我不知道为什么它被编码,除非可能是一种弱形式的混淆)。
这个设备只是我在线购买的便宜平板电脑,用于测试,然后使用自定义固件闪存。完全有可能无论出于何种原因“com.android.vending.licensing.ILicensingService”处理不当或根本没有处理,我收到此消息。
我的客户拥有的其他设备也可能出现此故障我希望能够在这种情况下向他们传达一些有意义的错误消息,因此他们不会因为他们的平板电脑问题而责怪我的应用
我想我可以找到进程目录,或者我可以找到一些如何找出处理命名intent的服务。这是可能的,如果是这样,我该如何去做?如果我可以尽可能准确地告诉用户为什么应用程序不会运行我可以为自己节省很多的悲伤。
答案 0 :(得分:0)
使用自定义固件闪存的便宜平板电脑很可能是您拥有的Google Play版本是旧的还是非官方的,因此“Google Play服务”APK缺失或不是最新版本。只有具有官方Google Play安装功能的设备才能保证正常运行。我会提供类似的信息。