2014-02-22 69 views
2

我想开发一个带有premiumn访问权限的android应用程序,为用户提供更多的可能性。高级访问是可用的一个月。一个月后,我希望应用程序阻止访问。 如何以编程方式管理它? 一些精确度:当用户获得高级访问权限时,他可以在没有互联网的情况下使用应用程序。因此,我希望在应用程序中放置一种计数器,即使应用程序处于开启,关闭或重新启动状态,计数器也会计数一天的次数。Android Premium访问管理programaticcaly

如果可以使用j2me应用程序,我将会停下来。 谢谢

回答

1

如果你不想使用订阅,告诉记者,在对方回答:
使用SharedPreferences。保存一个布尔值,以了解用户是否是优质的。当更改bool时,还会保存当前time的字符串,因为用户启用了溢价。每次初始化您的应用程序时,请检查它是否已经time + 30天,并相应地继续。

事情是这样的:

//enabling premium: 
long time= System.currentTimeMillis(); 
String sTime = String.valueOf(time); 
SharedPreferences premiumpref = new SharedPreferences(); 
premiumpref = getActivity().getSharedPreferences("premiumpref", Context.MODE_PRIVATE); 
premiumpref.edit().putString("time",strTime).commit(); 


//next start: 
long time= System.currentTimeMillis(); 
SharedPreferences premiumpref = new SharedPreferences(); 
premiumpref = getActivity().getSharedPreferences("premiumpref", Context.MODE_PRIVATE); 
String startTime = premiumpref.getString("time","0"); 
Long lStartTime = Long.valueOf(startTime); 
if((time-lStartTime) >= (86400000*30)) //thats the number of ms in a day 
{ 
    //premium is over 
} 
+0

请我不明白,最后一句:“在每一个初始化检查,如果它已经时间+ 30天。”我如何精确管理时间? – user3334222

+0

我喜欢你一个线程,只是点击时间。 启用保费时,您应该保存当前日期。当你启动应用程序时,你会得到这个日期,并检查该日期 - 今天的日期是<30天。 http://developer.android.com/reference/java/util/Calendar.html – tritop

+0

Ok !!!用户是否可以通过更改设备上的参数或重新启动来修改日期? (对不起,我的英语) – user3334222