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 ベースです。1 月 = 0、12 月 = 11。

于 2013-02-15T03:12:50.617 に答える
1

まず第一に、ルート化された電話を使用する経験豊富なプログラマーはほとんど何でもできるため (アプリを逆コンパイルしてハッキングすることを含む)、ハッキングを 100% 防ぐことが保証されている方法はありません。

最も簡単な方法は、有効期限をアプリにハードコードできる固定日付にすることです。

インストール時から一定期間 (たとえば 30 日) 後にアプリの有効期限が切れるようにする場合は、最初に電話識別子 (IMEI など) や Android アカウント (メールなど) を取得し、それをサーバーに保存します。インストール日。インストール日を電話に保存することもできるので (SharedPreference など)、サーバーにアクセスせずにすべての実行を確認できます。

編集

有効期限を確認する最も簡単な方法はSystem.currentTimeMillis()、TimeZone の処理を​​避けるために を使用することです。Epoch Time Converterなどのオンライン サービスを使用epochして、有効期限の値を知り、コードで確認することができます。

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

}
于 2013-02-15T02:59:32.573 に答える