¿Cómo puedo configurar el locking de pantalla con una contraseña mediante progtwigción?

¿Hay alguien que pueda ayudarme con un código para establecer una contraseña para bloquear la pantalla? Gracias

Usa este código en tu aplicación, funciona para mí:

DevicePolicyManager devicePolicyManager = DevicePolicyManager.getSystemService(Context.DEVICE_POLICY_SERVICE); ComponentName demoDeviceAdmin = new ComponentName(this, name of activity); devicePolicyManager.setPasswordQuality( demoDeviceAdmin,DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED); devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, 5); boolean result = devicePolicyManager.resetPassword("123456", DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY); Toast.makeText(this, "button_lock_password_device..."+result, Toast.LENGTH_LONG).show(); 

Mira esto . Esto funcionó para mí.

enter image description here

LockScreenActivity.java

  package com.kns; import android.app.Activity; import android.app.ActivityManager; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class LockScreenActivity extends Activity implements OnClickListener { private Button lock; private Button disable; private Button enable; static final int RESULT_ENABLE = 1; DevicePolicyManager deviceManger; ActivityManager activityManager; ComponentName compName; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); deviceManger = (DevicePolicyManager)getSystemService( Context.DEVICE_POLICY_SERVICE); activityManager = (ActivityManager)getSystemService( Context.ACTIVITY_SERVICE); compName = new ComponentName(this, MyAdmin.class); setContentView(R.layout.main); lock =(Button)findViewById(R.id.lock); lock.setOnClickListener(this); disable = (Button)findViewById(R.id.btnDisable); enable =(Button)findViewById(R.id.btnEnable); disable.setOnClickListener(this); enable.setOnClickListener(this); } @Override public void onClick(View v) { if(v == lock){ boolean active = deviceManger.isAdminActive(compName); if (active) { deviceManger.lockNow(); } } if(v == enable){ Intent intent = new Intent(DevicePolicyManager .ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, compName); intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Additional text explaining why this needs to be added."); startActivityForResult(intent, RESULT_ENABLE); } if(v == disable){ deviceManger.removeActiveAdmin(compName); updateButtonStates(); } } private void updateButtonStates() { boolean active = deviceManger.isAdminActive(compName); if (active) { enable.setEnabled(false); disable.setEnabled(true); } else { enable.setEnabled(true); disable.setEnabled(false); } } protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case RESULT_ENABLE: if (resultCode == Activity.RESULT_OK) { Log.i("DeviceAdminSample", "Admin enabled!"); } else { Log.i("DeviceAdminSample", "Admin enable FAILED!"); } return; } super.onActivityResult(requestCode, resultCode, data); } } 

MyAdmin.java

  package com.kns; import android.app.admin.DeviceAdminReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.widget.Toast; public class MyAdmin extends DeviceAdminReceiver{ static SharedPreferences getSamplePreferences(Context context) { return context.getSharedPreferences( DeviceAdminReceiver.class.getName(), 0); } static String PREF_PASSWORD_QUALITY = "password_quality"; static String PREF_PASSWORD_LENGTH = "password_length"; static String PREF_MAX_FAILED_PW = "max_failed_pw"; void showToast(Context context, CharSequence msg) { Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); } @Override public void onEnabled(Context context, Intent intent) { showToast(context, "Sample Device Admin: enabled"); } @Override public CharSequence onDisableRequested(Context context, Intent intent) { return "This is an optional message to warn the user about disabling."; } @Override public void onDisabled(Context context, Intent intent) { showToast(context, "Sample Device Admin: disabled"); } @Override public void onPasswordChanged(Context context, Intent intent) { showToast(context, "Sample Device Admin: pw changed"); } @Override public void onPasswordFailed(Context context, Intent intent) { showToast(context, "Sample Device Admin: pw failed"); } @Override public void onPasswordSucceeded(Context context, Intent intent) { showToast(context, "Sample Device Admin: pw succeeded"); } } 

main.xml

      

policies.xml

           

Puede tener este policies.xml en el diseño o en la carpeta xml. Lo único que debe tener cuidado es la etiqueta de metadatos en el archivo Androidmanifest .

                    

Antes de bloquear la pantalla, debe habilitar el permiso de administrador

enter image description here

Entonces obtendrás esto …

enter image description here

Después de Habilitar, bloqueará la pantalla … como esta

enter image description here

http://developer.android.com/guide/topics/admin/device-admin.html

 private static DevicePolicyManager dpm = (DevicePolicyManager)context .getSystemService(Context.DEVICE_POLICY_SERVICE); private static ComponentName admin = new ComponentName(context, DeviceAdminManager.class); // add password policies you want dpm.setPasswordQuality(admin, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED); dpm.setPasswordMinimumLength(admin, 5); **boolean result = dpm.resetPassword("newPassword", RESET_PASSWORD_WITHOUT_ENTRY);** 

echa un vistazo a este sitio web http://blog.stef.be/patternlock . En este sitio web, la implementación del patrón de locking de pantalla mediante javascript, html y css se definió muy claramente … Todo el código está disponible desde su código abierto … Espero que lo ayude

Android N no funciona, mira aquí

Nota: Esta API se ha limitado a partir de N para los administradores de dispositivos que no son propietarios del dispositivo ni propietario del perfil. La contraseña ahora solo se puede cambiar si actualmente no hay una contraseña establecida. El propietario del dispositivo y el propietario del perfil aún pueden hacer esto cuando el usuario está desbloqueado y no tiene un perfil administrado.