我在 Android 中做了一个小应用程序,我想将其设置为试用版 2 天,2 天后它应该要求一个密钥。如果用户在过期日期之后卸载应用程序,他应该无法在没有密钥的情况下使用应用程序......
问问题
1895 次
4 回答
1
一个想法可能是发布应用程序的两个版本。一个有一些限制或广告的免费版本和另一个付费版本的应用程序。
于 2012-09-04T11:44:23.900 回答
0
您需要设置一个数据库,该数据库将在线为每个设备分配一个特定的 ID。如果您要将安装日期保存在 SharedPreference 或任何本地内存中,用户只需清除所有应用程序数据即可将其从手机中删除。他甚至不必卸载它。
因此,每次新用户安装您的应用程序时,您都需要将与每个设备对应的安装日期存储在您的在线数据库中。每次启动应用程序时,您都需要向服务器询问与该设备相对应的安装日期,并让用户在试用期内继续操作,否则向他询问那里的密钥。
于 2012-09-04T11:37:15.900 回答
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
}
}
请注意,如果用户卸载应用程序,然后重新安装,或者只是删除应用程序存储的数据,“计时器”将重置!
更安全的方法是将这些数据存储在在线数据库中,但这更难解决,并且需要一直连接互联网来检查应用程序是否过期。
于 2012-09-04T11:45:16.957 回答
0
只需使用 Android 许可。这非常简单而且很棒。
任何比这更安全的东西都会很麻烦。我认为大多数应用程序不值得付出努力。
http://developer.android.com/google/play/licensing/index.html
于 2013-11-14T17:30:55.917 回答