2013-02-15 15 views
6

Mam aplikację na Androida i chcę ją podać do celów testowych, po dacie wygaśnięcia aplikacja musi wyświetlić okno dialogowe i zablokować polecenia.Jak ustawić datę wygaśnięcia w Androidzie

tutaj mój kod, aby wyświetlić okno dialogowe i polecenia bloku

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

ale jak ustawić datę ważności na Androida w formie

if(appLicenseExpired){ 
void expired(); 
} 

weryfikującej że faktyczna data poprzedza datę zestaw ważności (na przykład 3 marca 2013 r.)?

Odpowiedz

6

następujących zestawów isExpired dzień 12/31/2014:

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

boolean isExpired = now.after(expDate); 

Uwaga: Miesiące dotyczą 0. January = 0, December = 11.

+0

dziękuję Spróbuję tego – AndreaF

+0

Do celów testowych, możesz utworzyć instancję 'GregorianCalendar (2013, 2, 14, 21, 20);' (Czas centralny, USA, wygasa za pięć minut - dostosuj do własnej strefy czasowej) – 323go

+0

I przetestowałem twój kod zmieniając datę telefonu, ale z jakiegoś powodu działa miesiąc później, jeśli ustawię datę wypłaty (2013, 3, 29) aplikacja wygaśnie po 29 kwietnia 2013 r. Jakieś rozwiązania? Dzięki – AndreaF

0

Przede wszystkim, nie ma metody, która jest 100% gwarancją zapobiec włamania ponieważ doświadczony programista z ukorzenionych telefonu można bardzo dużo zrobić wszystko (w tym Dekodowanie swoją aplikację i siekać)

Najprostszym sposobem jest aby ustawić datę wygaśnięcia na stałą datę, którą możesz po prostu zakodować w swojej aplikacji.

Jeśli chcesz, aby aplikacja wygasała po określonym czasie od instalacji (powiedzmy 30 dni), po prostu najpierw otrzymaj identyfikator telefonu (np. IMEI) i/lub konto android (np. E-mail), a następnie zapisz go do serwer z datą instalacji. Możesz zapisać datę instalacji również w telefonie (np. SharedPreference), dzięki czemu możesz sprawdzić każdy przebieg bez wchodzenia na serwer.

Edit

Najprostszym sposobem sprawdzenia daty wygaśnięcia jest użycie System.currentTimeMillis() aby uniknąć czynienia z TimeZone. Można korzystać z usług online, takich jak Epoch Time Converter, aby poznać wartość epoch do daty ważności i po prostu sprawdzić go w kodzie

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

} 
+0

Chcę tylko w prosty sposób, który sprawdza, czy faktyczna data jest wcześniejsza niż ustalona data ważności ... nie jest ważny IMEI. Ponieważ muszę podać przykładową aplikację do sprawdzenia i chcę, aby wygasła po dokładnej dacie (na przykład po 3 marca 2013 r.). – AndreaF

+0

@AndreaF Powinno wtedy działać hardcoding data ważności lub przechowywanie daty instalacji jako SharedPreference. –

+0

@ Code-Guru Problem polega na tym, że nie mam doświadczenia z zarządzaniem kalendarzem i nie wiem, jak porównać i ustawić dokładną datę w kodzie. – AndreaF

Powiązane problemy