2010-12-28 14 views
22

Ho cercato di bloccare il dispositivo tramite il programma. Ma non riesco a trovare ancora la soluzione. Voglio bloccare Android froyo2.2 attraverso il programma. Ho provato keyguardmanager e DeviceAdminManager.Blocco del dispositivo Android a livello di programmazione

La mia app è per il blocco remoto del dispositivo. Quando il messaggio viene ricevuto con alcune parole in codice da bloccare, blocca il telefono. Ho trovato molti programmi Api_demo come soluzione ma non riesco a estrarre il codice di blocco da solo e trovare la soluzione.

+0

un po 'come ho capito ... – adithi

+4

quindi fornire la risposta da soli, e accettarlo – pufferfish

risposta

15

La classe di attività dovrebbe essere classe interna e la classe outter dovrebbe estendersi 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); 
     } 
    } 
} 

Per bloccare il dispositivo scrivere il codice nel caso in cui si utilizza per bloccare

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

Se DeviceAdmin è abilitato quindi il telefono sarà bloccato. Per abilitare l'amministratore del dispositivo, viene chiamato l'intento DevicePolicyManager che deve essere abilitato dall'utente.

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

adithi waht è securemeAdmin e attivo? Ho lo stesso problema. puoi spiegare – arpit

+3

qualcuno può per favore dire cosa è attivo e cosa è secureadmin qui? – Reyjohn

+0

Questo codice sopra riportato viene preso da DeviceAdminSample presente negli esempi di sdk Android disponibili con Android SDK. APIDemos -> app – Sundeep

3

Al fine di risolvere questo compito si può dare un'occhiata a NoKeyGuard source code e più precisamente a una classe NoKeyGuard servizio e la classe KeyguardLockWrapper.

per sbloccare il dispositivo scrivere il codice nel caso in cui si utilizza per sbloccare:

classe
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

Questo è ormai obsoleto. Non usare! – Hawk

1

L'attività dovrebbe essere la classe interna e la classe esterna dovrebbe estendere 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

Questo funzionava, ad esempio in Android 2.3, ma non funziona più. – DagW

Problemi correlati