2012-03-03 11 views
6

Przeszukałem wiele podobnych pytań i przekonałem się, że jest to , a nie możliwe ustawienie ekranu blokady jako standardowych androidowych szafek. Możliwe jest stworzenie aplikacji, która wyłącza LockScreen i używa innej "blokady" zamiast standardowej. Zastanawiam się nad utworzeniem niestandardowego ekranu blokady z innym rodzajem zamka. Co nie wiem, to jest możliwe:"Zablokuj ekran" z niestandardowym hasłem bezpieczeństwa

  1. Czy istnieją jakieś sposoby useing układ .xml dla lockscreen
  2. można następnie zapisać go jak normalny aplikacji

nie chcę odesłania do istniejących aplikacji na rynku.

Odpowiedz

1

Uważam, że masz rację, ponieważ nie znalazłem sposobu na zastąpienie oryginalnego ekranu blokady. Jak powiedziałeś, możemy wyłączyć oryginał i podrobić kolejny.

mam pojęcia i można znaleźć na tej stronie też pomocny: http://chandan-tech.blogspot.com/2010/10/handling-screen-lock-unlock-in-android.html

wyłączyć oryginału dodać detektor do ACTION_SCREEN_ON, a po wyzwoleniu, wyświetlać fałszywy lockscreen, a od teraz można napisać to jak normalna aplikacja i wierzę, że układ xml jest całkowicie praktyczny.

Aby faktycznie zaimplementować tę usługę, należy również wykonać usługę, która musi działać przy uruchomieniu systemu. W swojej działalności należy również wyłączyć pasek powiadomień i przyciski.

+0

dziękuję za link – Magakahn

0

Można spróbować nadrzędnymi KeyguardManager

KeyguardManager.KeyguardLock key; 
KeyguardManager km=(KeyguardManager)getSystemService(KEYGUARD_SERVICE); 
//depreciated 
key=km.newKeyguardLock("IN"); 

Musisz włożyć to w service.Go jak coś takiego:

public class LockService extends Service{ 
BroadcastReceiver receiver; 
@override 
@SuppressWarnings("deprecation") 
public void onCreate(){ 
KeyguardManager.KeyguardLock key; 
KeyguardManager km=(KeyguardManager)getSystemService(KEYGUARD_SERVICE); 
//depreciated 
key=km.newKeyguardLock("IN"); 
IntentFilter filter=new IntentFilter(Intent.ACTION_SCREEN_ON); 
filter.addAction(Intent.ACTION_SCREEN_OFF); 
filter.addAction(Intent.ACTION_BOOT_COMPLETED); 
receiver=new LockscreenReceiver(); 
registerReceiver(receiver,filter); 
super.onCreate(); 
} 

A potem na LockscreenReceiver, należy wdrożyć tę akcję:

public class LockscreenReceiver extends BroadcastReceiver{ 
@Override 
public void onReceive(Context context,Intent intent){ 
String action=intent.getAction(); 
//if the screen was recently enabled, do this: 
//If the screen was just turned on or it just booted up, start your Lock Activity 
     if(action.equals(Intent.ACTION_SCREEN_OFF) || action.equals(Intent.ACTION_BOOT_COMPLETED)) 
     { 
      Intent i = new Intent(context, MainActivity.class); 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(i); 
     } 
} 
} 

Następnie musisz się zarejestrować lub zadzwonić do serwisu w MainActivity

startService(new Intent(this,LockscreenService.class)); 

Aby zobaczyć to w akcji, przejdź do https://github.com/thomasvidas/Simple-Lockscreen