7

我有一个 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 日)?

4

2 回答 2

7

截至 2014 年 12 月 31日的以下套装isExpired

GregorianCalendar expDate = new GregorianCalendar( 2013, 11, 31 ); // midnight
GregorianCalendar now = new GregorianCalendar();

boolean isExpired = now.after( expDate );

注意:月份是从 0 开始的。一月 = 0,十二月 = 11。

于 2013-02-15T03:12:50.617 回答
1

首先,没有一种方法可以 100% 保证防止黑客入侵,因为有经验的程序员拥有 root 手机几乎可以做任何事情(包括反编译您的应用程序并对其进行黑客攻击)

最简单的方法是将到期日期设为固定日期,您可以在应用程序中简单地对其进行硬编码。

如果您想让应用程序在安装时间(例如 30 天)后的一段时间后过期,只需首先获取手机标识符(例如 IMEI)和/或 Android 帐户(例如电子邮件),然后将其存储到服务器安装日期。您也可以将安装日期存储在手机上(例如 SharedPreference),这样您就可以检查每次运行而无需访问服务器。

编辑

检查到期日期的最简单方法是使用System.currentTimeMillis()以避免处理 TimeZone。您可以使用Epoch Time Converter等在线服务来了解到epoch期日期的值并在您的代码中检查它

if(System.currentTimeMillis() >= EXPIRY_EPOCH){

}
于 2013-02-15T02:59:32.573 回答