我有一个Android应用程序,我想将其用于测试目的,在到期日之后,应用程序必须显示一个对话框并阻止命令。
这里是我的代码,用于显示对话框和阻止命令
public void expired(){
bt1.setEnabled(false)
bt2.setEnabled(false)
bt3.setEnabled(false)
bt4.setEnabled(false)
bt5.setEnabled(false)
Alerts.AppExpiredMessage(Home.this);
}
但如何在Android中以
的形式设置到期日期if(appLicenseExpired){
void expired();
}
验证实际日期是先前设定的到期日期(例如2013年3月3日)??
答案 0 :(得分:6)
截至2014年12月31日,以下内容为isExpired
:
GregorianCalendar expDate = new GregorianCalendar( 2013, 11, 31 ); // midnight
GregorianCalendar now = new GregorianCalendar();
boolean isExpired = now.after( expDate );
注意:月份从0开始。 1月= 0,12月= 11。
答案 1 :(得分:0)
首先,没有100%保证可以防止黑客攻击的方法,因为有经验的程序员使用root手机几乎可以做任何事情(包括反编译应用程序并破解它)
最简单的方法是将到期日期设为固定日期,您只需在应用中对其进行硬编码即可。
如果你想让应用程序在安装时间(比如30天)的一段时间后过期,只需在第一个获取电话标识符(例如IMEI)和/或Android帐户(例如电子邮件),然后将其存储到服务器的安装日期。您也可以将安装日期存储在手机上(例如SharedPreference),这样您无需前往服务器即可检查每次运行。
修改强>
检查到期日期的最简单方法是使用System.currentTimeMillis()
来避免处理TimeZone。您可以使用Epoch Time Converter等在线服务来了解到期日期的epoch
值,并在代码中查看
if(System.currentTimeMillis() >= EXPIRY_EPOCH){
}