title: How to lock the screen of an android device
body: <p>I want to implement the screen lock functionality in my application, but currently I can't get it to work. I have an alertDialog which will request input from the user through the use of a couple buttons. If the user presses 'no' I want to lock the screen (indefinitely, not for a set amount of time). What is the best way to programmatically lock the screen? I have tried using the following but, although my dialog is dismissed, the screen never locks.</p>
  
  <pre><code>KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); 
                          KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
                          lock.reenableKeyguard();
  </code></pre>
  
  <p><strong>MyCode</strong></p>
  
  <pre><code>import android.app.Activity;
  import android.app.AlertDialog;
  import android.app.KeyguardManager;
  import android.app.KeyguardManager.KeyguardLock;
  import android.content.DialogInterface;
  import android.os.Bundle;
  import android.view.Window;
  
  public class MyApp extends Activity {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          this.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
          super.onCreate(savedInstanceState);
          setContentView(R.layout.splash);
  
  
          startDialog();
      }
  
  
  
      private void startDialog() {
  
          AlertDialog.Builder myAlertDialog = new AlertDialog.Builder(this);
  
          myAlertDialog.setMessage("Do you want to exit the application?");
          myAlertDialog.setPositiveButton("Yes",
                  new DialogInterface.OnClickListener() {
  
                      // do something when the button is clicked
                      public void onClick(DialogInterface arg0, int arg1) {
                          System.out.println("...yes button is clicked..");
                          arg0.dismiss();
  
                      }
                  });
  
          myAlertDialog.setNegativeButton("NO",
                  new DialogInterface.OnClickListener() {
  
                      // do something when the button is clicked
                      public void onClick(DialogInterface arg0, int arg1) {
                          System.out.println("...clicked no...");
                          arg0.dismiss();
                          KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); 
                          KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
                          lock.reenableKeyguard();
  
                      }
                  });
          AlertDialog alert = myAlertDialog.create();
          myAlertDialog.setCancelable(false);
          alert.setCancelable(false);
          alert.getWindow().setLayout(600, 400);
  
          myAlertDialog.show();
      }
  
  
  }
  </code></pre>
  
  <p><strong>In Manifest</strong> add</p>
  
  <pre><code>&lt;uses-permission android:name="android.permission.DISABLE_KEYGUARD"&gt;&lt;/uses-permission&gt;
  </code></pre>
  
  <p>Does anyone know what I am doing wrong?</p>