2012-09-04 34 views
0

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

回答

0

您需要设置一个数据库,它将在线为每个设备分配一个特定的ID。如果您要将安装日期保存在SharedPreference或任何本地内存中,则只需简单地清除所有应用程序数据,即可将其从手机中删除。他甚至不必卸载它。

因此,每当新用户安装应用程序时,您需要将与每个设备相对应的安装日期存储在您的联机数据库中。每次应用程序启动时,您需要向服务器询问与该设备相对应的安装日期,并在用户处于试用期时继续进行操作,否则请向他询问密钥。

+0

你能寄样品代码[email protected] –

+0

获得Android设备ID可能这会有所帮助:http://stackoverflow.com/questions/2785485/is-there-a -unique-android-device-id –

+0

只适用于小应用,另一项活动在第二项活动中videoview –

1

一个想法可能会发布两个版本的应用程序。一个有一些限制的免费版本,或者Ad和它的另一个付费版本。

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 
    } 
} 

请注意,如果用户卸载应用程序,然后重新安装它,或者干脆删除应用程序存储的数据,“计时器”,将重启!

更安全的方法是将这些数据存储在在线数据库中,但要解决起来更加复杂,并且需要互联网连接来检查应用是否过期。