Android: я должен вызывать LicenseChecker каждый раз, когда приложение открывается? - PullRequest
5 голосов
/ 19 января 2011

Итак, я прочитал документы LVL взад и вперед и заставил их работать с моим приложением.Я видел вопросы об ответе, который кэшируется.Но это все еще заставляет меня задуматься, основываясь на некоторых формулировках в документах LVL, хочет ли Google, чтобы мы вызывали программу проверки лицензий каждый раз при инициализации приложения?Это самый безопасный способ реализовать это?Используя ServerManagedPolicy, как предлагает Google, мы просто вызываем проверку лицензии и запускаем ли наше приложение или делаем что-нибудь по своему выбору в случае неудачи?Одна из моих небольших проблем - использование сетевых данных.Они убеждают нас в необходимости проявлять осторожность при использовании ресурсов, не информируя пользователя, и мне кажется, что это использование сетевых данных без уведомления пользователя.

В дополнение к этому, кто-либо испытывает какие-либотип задержки их приложения из-за этого кода?Из-за характера моего приложения, его открытие, а затем ожидание каждый раз, когда в сети будет нормально работать, определенно отвлечет его от использования.Должен ли я кешировать ответ сам или я слишком обдумываю это?

Ответы [ 4 ]

1 голос
/ 21 февраля 2013

Звоните каждый раз, когда вы запускаете приложение. Библиотека LVL, поставляемая Google, будет кэшировать ответ и использовать его при следующем запуске приложения пользователем, поэтому не требуется сетевого подключения, если они перезапускают приложение в течение допустимого периода времени кэша.

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

1 голос
/ 19 января 2011

Хорошо, честно, проверяйте только время от времени ... Но где вы можете "безопасно" хранить информацию, чтобы проверять ее только один раз в день?Например, при первом запуске приложения вы проверите его.Результат LVL действителен: поэтому вы сохраняете дату последней успешной проверки.Но где его хранить?Используя SharedPreferences?Это безопасно?Потому что, если у вас есть root-доступ на вашем устройстве, вы можете получить доступ к предпочтениям и изменить действительную дату (в любом случае в будущем, конечно, вы можете проверить это в коде: -))

PS.Извините, не могу прокомментировать: (

1 голос
/ 19 января 2011

Вы ответили на свой вопрос;если вы чувствуете, что вызов службы каждый раз при запуске будет разрушительным (что может произойти, например, если у пользователя нет покрытия), тогда не делайте этого.

Google не дает рекомендаций относительно того, как часто использоватьслужба лицензирования;все зависит от того, насколько параноидально вы, как разработчик приложения, относитесь к пиратству, и сбалансировано с тем, насколько постоянно вы чувствуете, что проверка будет раздражать пользователя.

0 голосов
/ 21 июня 2012

Что касается LVL: хотя SDK предоставляет пример реализации, сами Google явно рекомендуют не использовать его «как есть».

http://www.google.com/events/io/2011/sessions/evading-pirates-and-stopping-vampires-using-license-verification-library-in-app-billing-and-app-engine.html

После просмотра этого, я полагаю,LVL не подходит для приложений, продаваемых за 1-2 $.Кроме того, неудачная проверка LVL (если сеть недоступна) разозлит законных пользователей.

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

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

...