如何在Android中设置过期日期

如何在Android中设置过期日期,android,android-calendar,Android,Android Calendar,我有一个Android应用程序,我想给它测试的目的,在到期日后,该应用程序必须显示一个对话框,并阻止命令 下面是显示对话框和块命令的代码 public void expired(){ bt1.setEnabled(false) bt2.setEnabled(false) bt3.setEnabled(false) bt4.setEnabled(false) bt5.setEnabled(false) Alerts.AppExpiredMessage(Hom

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

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

最简单的方法是将过期日期设置为固定日期,您只需在应用程序中硬编码即可

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

编辑

检查过期日期的最简单方法是使用
System.currentTimeMillis()
来避免处理时区。您可以使用在线服务,例如,了解有效期的
epoch
值,然后在代码中进行检查

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

}

从2014年12月31日起,我将对以下几组
进行测试:

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

boolean isExpired = now.after( expDate );

注:月份以0为基础。一月=0,十二月=11。

我只想要一种简单的方法来验证实际日期是否早于设定的到期日期。。。这对我来说并不重要。因为我必须提供一个示例应用程序供审查,我希望该应用程序在某个精确日期后过期(例如2013年3月3日之后)@AndreaF要么硬编码到期日期,要么将安装日期存储为共享引用,都应该可以。@Code Guru问题是我没有日历管理经验,不知道如何在代码中比较和设置精确的日期。@AndreaF查看GregorianCalendar和date类。出于测试目的,您可以实例化
gregoriacalendar(2013,2,14,21,20)(美国中部时间,五分钟后到期——根据您自己的时区进行调整)我已经测试了您更改手机日期的代码,但由于某些原因,如果我设置了补偿日期(2013年3月29日),应用程序将在2013年4月29日后到期。有什么解决办法吗?谢天谢地,我总是忘记——月份是以0为基础的,请参见答案的编辑。