2014-11-27 8 views
2

Я использую LVL в течение многих лет без проблем. У меня установлена ​​моя учетная запись, поэтому я являюсь действующим тестером лицензии, и, таким образом, я должен иметь возможность настроить ответ через консоль разработки. Недавно я обновил свое приложение до совместимого с Android 5.0 (т. Е. TargetSDK теперь является уровнем API 21). Я знаю, что я должен использовать явные намерения при привязке к сервису (например, LVL) на уровне API 21 и внес соответствующие изменения (фактически, прежде чем я сделал это изменение, я не мог даже привязываться к услуге LVL, а теперь Я могу, поэтому я знаю, что сделал это правильно). Проблема в том, что когда я запускаю свое приложение на устройстве Lollipop (Nexus 5 с заводским изображением), я всегда получаю NOT_LICENSED с сервера. Если я запустил такое же приложение на устройстве KitKat, я получаю ответ, который я настроил через консоль разработки , Таким образом, это, по-видимому, проблема с Lollipop. Кто-нибудь еще столкнулся с этим, и если да, то как вы его решили.Android 5.0 Лицензия Проверка всегда возвращается NOT_LICENSED

+0

у вас есть пример того, как изменить его, чтобы использовать явные намерения, так как приложение лицензии образца до сих пор использует неявные намерения – pt123

+0

Да - вы хотите: 'Intent намерения = новый Intent (ILicensingService.class.getName ()); '' intent.setPackage ("com.android.vending"); '' булево bindResult = mContext.bindService ( \t намерение, это, // ServiceConnection Context.BIND_AUTO_CREATE). ' – Rob

+0

спасибо Rob , кто-то дал ответ в вопросе, который я создал http://stackoverflow.com/q/27209510/1527440, который сказал, что у вас были проблемы с проверкой лицензии o n эмулятор Lollipop, или используют физическое устройство, спасибо – pt123

ответ

1

В случае, если кто-то еще сталкивается с этим, проблема прояснилась примерно через 48 часов. Я не внес никаких изменений в свое приложение и не изменил ничего с моей конфигурацией учетной записи разработчика Google. Я просто ушел от проблемы на несколько дней, и когда я вернулся, это сработало, как ожидалось. Поэтому я подозреваю, что проблема была в конце Google.

+0

Если вы ответили на этот вопрос. Пожалуйста, отметьте правильный. –

1

Я тоже испытывал это. Некоторые из моих пользователей всегда получают NOT_LICENSED, даже если все правильно. Похоже, что это прежде всего пользователи, у которых есть несколько устройств. Единственное решение, которое я нашел до сих пор, - это сброс настроек (yuck). Если я найду что-то лучшее, я отправлю его здесь.

Это вопрос, отличный от факта, что в течение месяца в Lollipop был сломан LVL. Для этого мое решение сложнее, но не требует жесткого кодирования имени пакета.

   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); 

 Смежные вопросы

  • Нет связанных вопросов^_^