Android应用的试用版?

时间:2012-09-04 11:34:10

标签: android

我在Android上做了一个小应用程序,我想将其设置为试用版2天,2天后它应该要求输入密钥。如果用户在过期日期后卸载应用程序,则他应该无法在没有密钥的情况下使用该应用程序...

4 个答案:

答案 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