Я использую LVL в течение многих лет без проблем. У меня есть настройка моей учетной записи, так что я являюсь действительным тестером лицензий, и поэтому я должен иметь возможность настроить ответ через консоль разработки. Недавно я обновил свое приложение, чтобы оно соответствовало Android 5.0 (т. е. targetSDK теперь имеет уровень API 21). Я осознаю, что должен использовать явные намерения при привязке к сервису (например, LVL) на уровне API 21 и внес соответствующие изменения (на самом деле, до внесения этого изменения я даже не мог привязаться к сервису LVL, а теперь Я могу, поэтому я знаю, что сделал это изменение правильно). Проблема в том, что когда я запускаю свое приложение на устройстве Lollipop (Nexus 5 с заводским образом), я всегда получаю сообщение NOT_LICENSED с сервера. Если я запускаю то же приложение на устройстве KitKat, я получаю ответ, который я настроил через консоль разработки. . Так что это похоже на конкретную проблему Lollipop. Кто-нибудь еще сталкивался с этим, и если да, то как вы это решили.
Проверка лицензии Android 5.0 всегда возвращает NOT_LICENSED
Ответы (2)
На случай, если кто-то еще столкнется с этим, проблема исчезла примерно через 48 часов. Я не вносил никаких изменений в свое приложение и ничего не менял в конфигурации своей учетной записи разработчика Google Play. Я просто ушел от проблемы на несколько дней, а когда вернулся, все заработало, как и ожидалось. Поэтому я подозреваю, что проблема была на стороне Google.
Я тоже испытал это. Некоторые из моих пользователей всегда получают 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);
Intent intent = new Intent(ILicensingService.class.getName());
intent.setPackage("com.android.vending");
boolean bindResult = mContext.bindService( intent, this, // ServiceConnection. Context.BIND_AUTO_CREATE);
- person Rob   schedule 01.12.2014