2013-02-15 18 views
6

Ich habe eine Android App und ich möchte es zu Testzwecken geben, nach dem Ablaufdatum muss die App einen Dialog anzeigen und die Befehle blockieren.Wie setze ich das Verfallsdatum in Android

hier mein Code Dialog und Block-Befehl zeigen

public void expired(){ 
    bt1.setEnabled(false) 
    bt2.setEnabled(false) 
    bt3.setEnabled(false) 
    bt4.setEnabled(false) 
    bt5.setEnabled(false) 
Alerts.AppExpiredMessage(Home.this); 
} 

aber wie Ablaufdatum in Android in Form

if(appLicenseExpired){ 
void expired(); 
} 

Überprüfung, ob das aktuelle Datum vorgängigen ein Satz Ablaufdatum festgelegt (zB 3. März 2013) ??

Antwort

6

folgenden Sets isExpired ab 2014.12.31:

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

boolean isExpired = now.after(expDate); 

Hinweis: Monate sind 0-basiert. Januar = 0, Dezember = 11.

+0

Danke, ich werde dies versuchen – AndreaF

+0

Zu Testzwecken können Sie 'GregorianCalendar (2013, 2, 14, 21, 20);' (Central Time, USA, verfällt in fünf Minuten - passen Sie für Ihre eigene Zeitzone) – 323go

+0

I instanziieren habe deinen Code getestet, der das Telefondatum ändert, aber aus irgendeinem Grund funktioniert einen Monat nach, wenn ich Sitiuierungsdatum einstelle (2013, 3, 29), läuft die APP nach dem 29. April 2013 ab. Irgendwelche Lösungen? Danke – AndreaF

0

Zunächst einmal gibt es keine Methode, weil ein erfahrener Programmierer mit einem verwurzelten Telefon so ziemlich alles tun kann, um zu verhindern Hacking garantiert zu 100% ist (decompiling Ihre App mit und es hacken)

Der einfachste Weg ist um das Ablaufdatum zu einem festen Datum zu machen, das Sie einfach in Ihrer App fest codieren können.

Wenn Sie möchten, dass die App nach einer bestimmten Zeit ab der Installationszeit abläuft (sagen wir 30 Tage), rufen Sie zuerst die Telefonkennung (zB IMEI) und/oder den Android-Account (zB E-Mail) ab ein Server mit dem Installationsdatum. Sie können das Installationsdatum auch auf dem Telefon speichern (z. B. SharedPreference), sodass Sie bei jedem Lauf prüfen können, ohne zum Server zu gehen.

bearbeiten

Der einfachste Weg für das Verfallsdatum zu überprüfen ist System.currentTimeMillis() zu verwenden, um mit Time-Zone zu vermeiden, die sich. Sie können solche Online-Service nutzen als Epoch Time Converter, die epoch Wert für das Verfallsdatum kennen und es nur in Ihrem Code überprüfen

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

} 
+0

Ich möchte nur auf eine einfache Art und Weise überprüfen, dass das tatsächliche Datum vor einem festgelegten Ablaufdatum ist ... ist nicht wichtig IMEI. Weil ich eine Beispiel-App zur Überprüfung geben muss und sie nach einem genauen Datum ablaufen soll (zum Beispiel nach dem 3. März 2013) – AndreaF

+0

@AndreaF Entweder das Festschreiben des Ablaufdatums oder das Speichern des Installationsdatums als SharedPreference sollte dann funktionieren. –

+0

@ Code-Guru Das Problem ist, dass ich keine Erfahrung mit dem Kalender-Management habe und ich weiß nicht, wie ein genaues Datum im Code vergleichen und einstellen. – AndreaF

Verwandte Themen