2010-12-15 7 views
0

je veux verrouiller le téléphone quand je clique sur le bouton de verrouillage. Tout le monde s'il vous plaît aider avec un code simple.i essayé avec une partie du code de API_Demos mais il montre une erreur.comment verrouiller l'android par programme

+0

Quelle est l'erreur? Dites-leur par ici! –

+0

Erreur (361): java.lang.SecurityException: Aucun administrateur actif appartenant à l'uid 10045 pour la stratégie n ° 3 WARN/DeviceAdminAdd (128): impossible de récupérer la stratégie de périphérique ComponentInfo {com.lock ..} – adithi

Répondre

1

Vous pouvez verrouiller l'écran Android par programmation la classe LockScreen comme ceci:

KeyguardManager mgr = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = mgr.newKeyguardLock(KEYGUARD_SERVICE); 
lock.reenableKeyguard(); 

Jetez un oeil à la classe LockScreen here.

+0

déjà essayé le code que vous avez mentionné.mais il n'y a pas de résultat et aussi aucune erreur.le message de chat de journal est comme suit 12-16 10: 20: 31.687: DEBUG/AndroidRuntime (332): Arrêt de VM 12-16 10:20: 31.697: DEBUG/dalvikvm (332): débogueur s'est détaché; registre d'objets avait 1 entrées 12-16 10: 20: 31.817: INFO/AndroidRuntime (332): NOTE: attach de thread 'Binder Thread # 3' échoué 12-16 10: 20: 37.376: DEBUG/dalvikvm (125) : GC_EXPLICIT libéré 2660 objets/175544 octets dans 101ms 12-16 10: 20: 53.036: DEBUG/SntpClient (59): l'heure de demande a échoué: java.net.SocketException: famille d'adresses non pris en charge par le protocole – adithi

+1

J'ai utilisé le même code de le tien et j'ai reçu l'avertissement de sécurité ainsi j'ai donné cette permission dans le dossier manifeste. . mais maintenant il ne me donne aucune exception et ne montre même pas la serrure. Savez-vous quel est le problème? – sajjoo

+0

@sajjoo J'ai le même problème, avez-vous trouvé une solution? – Bhupinder

1

Le code:

KeyguardManager mgr = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = mgr.newKeyguardLock(KEYGUARD_SERVICE); 
lock.reenableKeyguard(); 

ne se verrouille pas l'écran. Cela permet simplement le verrouillage du clavier. Lorsque vous exécutez avec

lock.disableKeyguard(); 

et appuyez sur le bouton de verrouillage sur l'appareil, il ne verrouillera pas le clavier. Pour verrouiller l'écran par programmation, vous devez vous référer à Device Admin et utiliser la méthode locknow() pour verrouiller l'appareil.

0

@Bhupinder Veuillez cliquer sur le lien suivant.

http://musicm122.blogspot.in/2011/10/locking-and-unlocking-android-phone.html

//Get the window from the context 

    WindowManager wm = Context.getSystemService(Context.WINDOW_SERVICE); 

    //Unlock 

    //http://developer.android.com/reference/android/app/Activity.html#getWindow() 

    Window window = getWindow(); 

    window.addFlags(wm.LayoutParams.FLAG_DISMISS_KEYGUARD); 



    //Lock device 

    DevicePolicyManager mDPM; 

    mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); 
+0

Notez que les réponses [link-only] (http://meta.stackoverflow.com/tags/link-only-answers/info) sont déconseillées, les réponses SO devraient être l'aboutissement d'une recherche de solution (vs. encore une autre escale de références, qui ont tendance à se figer au fil du temps). S'il vous plaît envisager d'ajouter un synopsis autonome ici, en gardant le lien comme référence. – kleopatra

Questions connexes