我在Android上做了一个小应用程序,我想将其设置为试用版2天,2天后它应该要求输入密钥。如果用户在过期日期后卸载应用程序,则他应该无法在没有密钥的情况下使用该应用程序...
答案 0 :(得分:1)
一个想法可能是发布两个版本的应用程序。一个免费版本,其中包含一些限制或广告,以及该应用的另一个付费版本。
答案 1 :(得分:0)
您需要设置一个数据库,该数据库将在线为每个设备分配一个特定的ID。如果要将安装日期保存在SharedPreference或任何本地内存中,用户只需清除所有应用程序数据即可将其从手机中删除。他甚至不必卸载它。
因此,每次新用户安装您的应用程序时,您都需要在相应的在线数据库中存储与每个设备相对应的安装日期。每次启动应用程序时,您都需要向服务器询问与该设备相对应的安装日期,如果用户处于试用期,则让用户继续操作,否则请向他询问密钥。
答案 2 :(得分:0)
我不知道,安全/安全会如何,但您可以使用SharedPreferences来存储此数据。只是一个很小的例子:
启动时:
SharedPreferences prefs = getSharedPreferences("AppName", Context.MODE_PRIVATE);
boolean firstRun = prefs.getBoolean("first_run", true);
long currentTime = System.currentTimeMillis();
if(firstRun)
{
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("first_run", false);
editor.putLong("first_run_time", currentTime);
editor.commit();
}
else
{
long firstRunTime = prefs.getLong("first_run_time", 0);
long twoDays = 2 * 24 * 60 * 60 * 60 * 1000;
if(currentTime - firstRunTime > twoDays)
{
//Expired
}
else
{
//Not yet expired
}
}
请注意,如果用户卸载应用程序,然后重新安装,或者只是删除应用程序存储的数据,“计时器”将重置!
更安全的方法是将这些数据存储在在线数据库中,但这样解决起来比较复杂,并且需要始终通过互联网连接来检查应用程序是否已过期。
答案 3 :(得分:0)
只需使用Android许可。这非常直接且非常棒。
任何比这更安全的事情都会非常麻烦。我认为大多数应用程序的努力都不值得。
http://developer.android.com/google/play/licensing/index.html