почему я всегда получаю один и тот же тестовый ответ от android-lvl? - PullRequest
4 голосов
/ 24 августа 2011

Я только что реализовал LVL в своем приложении.Сначала я настроил тестовый ответ на «LICENSED» в настройках своей учетной записи developper => все работает правильно;Я получаю этот ответ.

Когда я изменяю тестовый ответ на NOT_LICENSED, я все равно получаю результат "LICENSED" в своем приложении даже через два часа после изменения значения в учетной записи разработчика.

Есть идеи, как решить эту проблему?

1 Ответ

4 голосов
/ 23 июня 2012

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

Вот что вам следует сделать: вместо ServerManagedPolicy

mChecker = new LicenseChecker(this,//
                new ServerManagedPolicy(this,
                new AESObfuscator(SALT,getPackageName(),
                deviceId)), //
                BASE64_PUBLIC_KEY // The public licensing key.
        );

используйте StrictPolicy

mChecker = new LicenseChecker(this, new StrictPolicy(), BASE64_PUBLIC_KEY);

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

...