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