Вам нужен
сервер.Каждый раз, когда приложение запускается на устройстве, оно посылает
уникальный индефикатор телефона на
сервер.Если на
сервере уже есть этот индефикатор, то он делает проверку: истёк ли пробный период или нет.Это решение самое надёжное.Конечно, есть и другие(например: хранить дату в
SharedPreferences
или
БД, но они легко будут обходиться переустановкой приложения или сменой даты на устройстве).
Если вы будете хранить данные в файле, и пользователь удалит его - можно просто не запускать приложение, ловя Exception, а вот, если он изменит данные в файле - тогда это будет опасно.
Ещё можно заложить в код
"бомбу".То есть, жестко задать дату окончания
trial-периода в приложении.А при обновлениях приложения в магазине перекладывать её на более поздний срок.Минус - у всех пользователей приложение будет убиваться одновременно.