Как увеличить время кеша LVL?
В моем приложении реализована политика управления сервером LVL. Я знаю, что ответ сервера lvl кэшируется на устройстве в течение некоторого периода времени, поэтому пользователи могут использовать приложение без межсоединения (тогда lvl использует кэшированную лицензию). Я хотел бы точно знать, как долго этот период и как я могу увеличить его. По сути, lvl я реализовал проверку лицензий при каждом запуске приложения, и я хотел бы увеличить время действия кэша до 60 дней.
2 ответа
Я не нашел фактического значения времени кэширования lvl, установленного серверами Google, но я нашел, как его изменить. в ServerManagedPolicy.java
изменение файла:
setValidityTimestamp(extras.get("VT"));
на что угодно (здесь до 30 дней):
setValidityTimestamp(String.valueOf(System.currentTimeMillis() + (MILLIS_PER_MINUTE * 60 *24*30)));
заменить в ServerManagedPolicy.java
setValidityTimestamp(extras.get("VT"));
к
setValidityTimestamp(String.valueOf(System.currentTimeMillis() + (MILLIS_PER_MINUTE * 60 * 24 * 30 * 3)));
MILLIS_PER_MINUTE дает результат 60000:
60000 * 60 * 24 * 30 * 3 = 7776000000 миллисекунд, или 90 дней
вернуть оставшееся время в днях обратно пользователю:
mValidityTimestamp-System.currentTimeMillis())/(60*60*24*1000)
Я использую SharedPreferences для записи данных и возврата пользователю DAYS оставшихся дней до следующей привязки.