2010-12-28 21 views
22

Próbowałem zablokować urządzenie za pomocą programu. Ale wciąż nie mogę znaleźć rozwiązania. Chcę zablokować Android Froyo2.2 za pośrednictwem programu. Próbowałem keyguardmanager i DeviceAdminManager.Programowo zablokujesz urządzenie z Androidem

Moja aplikacja służy do zdalnego blokowania urządzenia. Po odebraniu wiadomości z niektórymi słowami kodowymi do zablokowania blokuje telefon. Znalazłem wiele programów Api_demo jako rozwiązanie, ale nie mogę wyodrębnić samego kodu blokady i znaleźć rozwiązania.

+0

niektóre, jak mam to ... – adithi

+4

następnie dostarczyć odpowiedź samemu i zaakceptować to – pufferfish

Odpowiedz

15

Klasa działalność powinna być wewnętrzna klasa i klasa outter powinien wystawać DeviceAdminReceiver

public class adminActivity extends DeviceAdminReceiver { 

    public static class Controller extends Activity { 

        DevicePolicyManager mDPM; 
      ComponentName mDeviceAdminSample; 

     protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 

       mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); 
       mDeviceAdminSample = new ComponentName(Controller.this, 
         adminActivity.class); 
     } 
    } 
} 

Aby zablokować urządzenie napisać kod w przypadku, gdy używasz, aby zablokować

if (active) { 
mDPM.lockNow(); 
} 

Jeśli DeviceAdmin jest włączony, wtedy telefon zostanie zablokowany. Aby włączyć administratora urządzenia, intencja DevicePolicyManager jest wywoływana i powinna być włączona przez użytkownika.

Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);   
+3

adithi waht jest securemeAdmin i aktywne? Mam ten sam problem. możesz wyjaśnić, – arpit

+3

może ktoś proszę powiedzieć, co jest aktywne, a co jest tutaj secureadmin? – Reyjohn

+0

Powyższy kod pochodzi z DeviceAdminSample obecnego w przykładach SDK systemu Android, które są dostępne w pakiecie Android SDK. APIDemos -> aplikacja – Sundeep

3

W celu rozwiązania tego zadania można spojrzeć na NoKeyGuard source code a dokładniej do klasy NoKeyGuard usług i klasy KeyguardLockWrapper.

Aby odblokować urządzenie napisać kod w przypadku gdy używasz odblokować:

klasa
Context context= getApplicationContext(); 
    KeyguardManager _guard = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); 
    KeyguardLock _keyguardLock = _guard.newKeyguardLock("KeyguardLockWrapper"); 
    //to disable 
    _keyguardLock.disableKeyguard(); 
    //to enable 
    _keyguardLock.reenableKeyguard(); 
+8

To jest już nieaktualne. Nie używaj! – Hawk

1

Aktywność powinna być klasa wewnętrzna i zewnętrzna klasa powinna rozciągać DeviceAdminReceiver

public class adminActivity extends DeviceAdminReceiver { 

    public static class Controller extends Activity { 

       DevicePolicyManager mDPM; 
     ComponentName mDeviceAdminSample; 

    protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); 
      mDeviceAdminSample = new ComponentName(Controller.this, 
        adminActivity.class); 
    } 
} 
} 
-3
 WindowManager.LayoutParams lp = getWindow().getAttributes(); 
     lp.screenBrightness = 0; 
     getWindow().setAttributes(lp); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
+0

To działało, powiedzmy w systemie Android 2.3, ale już nie działa. – DagW

Powiązane problemy