2010-09-12 4 views
2

Я попытался использовать новую лицензионную службу Android, и я столкнулся с некоторыми проблемами. Мой код в основной деятельности выглядит следующим образом:.Проблема с сервером лицензирования Android

mLicenseCheckerCallback = new MyLicenseCheckerCallback(); 

    String deviceId = Secure.getString(MainTabActivity.this.getContentResolver(), Secure.ANDROID_ID); 

    mChecker = new LicenseChecker(
      MainTabActivity.this, new ServerManagedPolicy(MainTabActivity.this, 
       new AESObfuscator(SALT, getPackageName(), deviceId)), 
      BASE64_PUBLIC_KEY 
      ); 

     mChecker.checkAccess(mLicenseCheckerCallback); 

(в основном только показанный код Android интерактивной документации Обратный вызов проходит через, если это разрешено, и если это не выводит сообщение и завершает работу приложения Итак. далеко не так хорошо.

Проблема в том, что он отлично работает в отладчике, но когда я публикую его на рынке и обновляю свое приложение (я купил версию своего приложения с моей личной gmail-accout, поэтому я Я являюсь законным пользователем) Я получаю сообщение об ошибке, что мое приложение не лицензировано. Я даже добавил свой личный адрес gmail в белый список в своем рыночном профиле и установил статус «ЛИЦЕНЗИРОВАН», но он по-прежнему сталкивается с ошибкой У вас есть предложения?

+0

Вы запутываете код? Я столкнулся с несколькими проблемами, вызванными запутыванием обфускатора. –

+0

Пока мы находимся на этом вопросе, сервер лицензирования должен отклонить учетную запись разработчика, если ее установить «Ответ нормально»? Я не установил его в дикой природе. Ваш пост выше делает меня немного осторожным. Обновите, если вы обнаружите ответ. – Jason

+0

Да, я запутываю код. Я постараюсь, не запутывая, и дам вам знать. Если у вас есть другие предложения, дайте мне знать. У меня есть две учетные записи: учетная запись разработчика для публикации моих приложений, приватная учетная запись с моей личной почтой на моем мобильном телефоне. Я купил приложение с помощью своей личной учетной записи, поэтому его необходимо зарегистрировать. – Daniel

ответ

0

Обратный вызов от службы лицензирования иногда не происходит в течение нескольких секунд - хуже, если есть сетевое отставание. Как правило, он кэширует ответ в службе после успешной попытки уменьшить эту задержку при запуске приложения.

Скорее всего, вам нужно будет переместить логику для закрытия приложения (или отключить функции), чтобы позже использовать опыт пользовательского интерфейса.

У меня также было несколько ложных негативов для пользователей, которые были исправлены, если они закрыли приложение и снова попытались позже.

0

Я была такая же проблема и добавил

<uses-permission 
     android:name="com.android.vending.CHECK_LICENSE"></uses-permission> 

в манифесте, сделал трюк для меня!