Android 5.0许可证检查始终返回NOT_LICENSED

时间:2014-11-27 18:01:28

标签: android android-5.0-lollipop android-lvl

我一直在使用LVL多年而没有问题。我有我的帐户设置,以便我是一个有效的许可证测试人员,因此,我应该能够通过开发控制台配置响应。我最近将我的应用升级为Android 5.0兼容(即targetSDK现在是API级别21)。我知道在绑定到API级别21上的服务(如LVL)时必须使用显式意图并进行了相应的更改(实际上,在我进行此更改之前,我甚至无法绑定到LVL服务,现在我可以,所以我知道我正确地改变了这一点。问题是,当我在Lollipop设备(带有工厂映像的Nexus 5)上运行我的应用程序时,我总是从服务器获得NOT_LICENSED,如果我在KitKat设备上运行相同的应用程序,我得到他通过开发控制台配置的响应。所以这似乎是一个棒棒糖特定的问题。有没有其他人遇到过这个,如果有的话,你是怎么解决的。

2 个答案:

答案 0 :(得分:1)

如果其他人遇到此问题,大约48小时后问题就会自动解决。我没有对我的应用进行任何更改,也没有使用Google Play开发者帐户配置更改任何内容。我刚离开这个问题几天,当我回来时,它按预期工作。所以我怀疑这个问题是在谷歌的最后。

答案 1 :(得分:1)

我也经历过这种情况。即使一切正确,我的一些用户也总是得到NOT_LICENSED。它似乎主要是具有多个设备的用户。到目前为止我找到的唯一解决方案是出厂重置(哎呀)。如果我找到更好的东西,我会在这里发布。

这是一个与LVL在Lollipop中被打破数月的事实不同的问题。为此,我的解决方案更复杂,但不需要对包名称进行硬编码。

                final Intent intent =  new Intent(
                        new String(
                                Base64.decode("Y29tLmFuZHJvaWQudmVuZGluZy5saWNlbnNpbmcuSUxpY2Vuc2luZ1NlcnZpY2U=")));
                final ResolveInfo resolveInfo = mContext.getPackageManager().resolveService(intent, 0);
                final ServiceInfo serviceInfo = resolveInfo.serviceInfo;
                final ComponentName componentName = new ComponentName(serviceInfo.packageName, serviceInfo.name);
                intent.setComponent(componentName);
                boolean bindResult = mContext
                        .bindService(
                               intent,
                                this, // ServiceConnection.
                                Context.BIND_AUTO_CREATE);