Android DevicePolicyManager lockNow ()

Soy nuevo en el desarrollo de Android, por eso me golpeó una pared. Quiero que una aplicación se ejecute como un servicio y monitorea SMS. Si se recibe un mensaje SMS específico, bloquea el teléfono (como si el período de bloqueo hubiera caducado). Un poco como un bloqueo remoto.

Utilicé DevicePolicyManager para invocar el método lockNow() . Sin embargo, activa un error en la parte que se llama lockNow() .

Aquí está el código de ejemplo en la actividad:

 public class SMSMessagingActivity extends Activity { /** Called when the activity is first created. */ public static DevicePolicyManager mDPM; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); } public static void LockNow(){ mDPM.lockNow(); } } 

Miré http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.html como un ejemplo de referencia.

¿Alguien puede ayudarme? ¿Mostrarme lo que está mal con mi código? ¿Tengo que modificar algo para habilitar derechos administrativos en el emulador o el dispositivo?

¡Gracias!

Aquí hay algo de los documentos:

El administrador del dispositivo llamante debe haber solicitado USES_POLICY_FORCE_LOCK para poder llamar a este método; Si no lo ha hecho, se lanzará una excepción de seguridad.

Por lo tanto, usted debe hacer lo siguiente en su oncreate:

 ComponentName devAdminReceiver; // this would have been declared in your class body // then in your onCreate mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); devAdminReceiver = new ComponentName(context, deviceAdminReceiver.class); //then in your onResume boolean admin = mDPM.isAdminActive(devAdminReceiver); if (admin) mDPM.lockNow(); else Log.i(tag,"Not an admin"); 

En una nota lateral, su código de ejemplo es una actividad.
Eso, y usted debe utilizar un receptor de radiodifusión para implementar todo y monitorear sms.

He aquí un ejemplo de API para recibir sms:

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/os/SmsMessageReceiver.html

  • Android: ¿Recibe todos los sms enviados? (bandeja de salida)
  • URL de SMS en Android
  • Abrir la conversación de SMS principal en android
  • BroadcastReceiver no funciona después de BOOT_COMPLETED
  • Cómo recibir sms de datos en dos puertos diferentes
  • Android4.4 no puede manejar la intención de sms con "vnd.android-dir / mms-sms"
  • Android: cómo obtener el número de teléfono de un SMS entrante?
  • Enviar SMS por intención
  • ¿Podemos borrar un SMS en Android antes de que llegue a la bandeja de entrada?
  • ¿Cómo funciona "deliveryIntent" en el marco de Android SMS?
  • Cómo consultar el MMS Iniciar sesión en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.