2012-01-20 17 views
7

quiero crear dicha aplicación en android que se activará cuando presiono el botón de reposo o encendido dos veces, ¿es posible hacer eso, ejecutando una aplicación en segundo plano y escuchando eventos de botón de encendido ?activar una aplicación cuando se hace clic en un botón de encendido

algunas veces el teléfono entra en modo de suspensión una vez que está inactivo, y para usar cualquier aplicación, el usuario debe presionar botón de suspensión y luego debe ingresar cierta contraseña para activar el teléfono. Pero quiero hacer que active mi aplicación cuando se hace clic en un botón de encendido sin ninguna otra intervención

+0

usted tiene que escribir un servicio para hacer eso, yo no lo probé, pero aquí hay una question.http smiliar: //stackoverflow.com/questions/5907102/home-button-listener – ocanal

Respuesta

13

Puede probar este truco.

Registre un receptor de difusión que se inicia cuando se hace clic en el botón de encendido. Ahora en el método OnReceive del receptor haga lo que quiera.

Por ejemplo:

en archivo de manifiesto registrar un receptor:

<receiver android:name="com.test.check.MyReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.SCREEN_OFF"></action> 
      <action android:name="android.intent.action.SCREEN_ON"></action> 
      <action android:name="android.intent.action.ACTION_POWER_CONNECTED"></action> 
      <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"></action> 
      <action android:name="android.intent.action.ACTION_SHUTDOWN"></action> 
     </intent-filter> 
    </receiver> 

& & en OnReceive() de la Receptor

public class MyReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context arg0, Intent arg1) { 
     // TODO Auto-generated method stub 

     Log.v("#@%@%#", "Power button is pressed."); 

     Toast.makeText(arg0, "power button clicked",Toast.LENGTH_LONG).show(); 

     //perform what you want here 
    } 
} 

Ahora realizar cualquier operación en OnReceive() método del Receptor.

+1

Hey el arriba engañado funcionó ... Hice este código y está funcionando y muestra la tostada cuando el botón de encendido está conectado o desconectado. Modifiqué un poco el código, así que estoy editando un poco la publicación anterior. Espero que pueda ayudarte ... –

+0

¿Puede decirnos qué cambios ha realizado en el código anterior? y pegue un código completo de archivo de menifiesto. gracias –

+0

de estas 5 acciones, la única que funciona mientras el teléfono está bloqueado es SCREEN_ON-Event. – bofredo

0

este es un evento clave de poder que puede obtener una idea de esto, solo intente esto, tendrá una idea ... No intenté tal acto, pero encontré esto en el administrador de energía.

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) { 
     // do what you want with the power button 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+2

Esto solo funciona si la actividad donde _onKeyDown_ se está ejecutando y está activo – Moesio

Cuestiones relacionadas