2010-01-20 17 views
7

Quiero hacer algo después de que el teléfono se haya puesto en el cargador. Así que creado ChargingOnReciever:Android: el evento ACTION_POWER_CONNECTED no se envía a mi BroadcastReceiver

public class ChargingOnReceiver extends BroadcastReceiver { 
    public void onReceive(Context context, Intent intent) { 
     context.startActivity(someActivity); 
     Log.d(TAG, "Phone was connected to power"); 
    } 
} 

y quiero que mi receptor para escuchar android.intent.action.ACTION_POWER_CONNECTED, por lo que poner esto en manifiesta:

<reciever android:name=".ChargingOnReceiver" 
      android:enabled="true" 
      android:exported="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> 
    </intent-filter> 
</reciever> 

Pero ChargingOnReceiver al parecer, no se pone en marcha cuando pongo mi G1 al cargador (conéctelo a mi computadora portátil a través de un cable USB). Cualquier ayuda es muy apreciada.

Respuesta

25

¡Es receptor, no receptor! Me tomó 5 horas encontrar este estúpido error. Creo que el complemento de Android Eclipse debería hacer alguna comprobación de sintaxis en el manifiesto xml.

+1

También perdí mi único día en este tema – user3233280

0
  1. No iniciar una actividad desde BroadcastReceiver.

  2. ¿Has examinado LogCat en el momento de enchufar el cable USB para ver si hay algún mensaje registrado que pueda explicar tu problema?

+0

1. Estoy comenzando la actividad solo con fines de prueba, para ver si se llama a onReceive. 2. Lamentablemente no encontré nada útil en los mensajes de registro ... – fhucho

+0

@CommonsWare puede explicar por qué no deberíamos comenzar la actividad desde el receptor de difusión – user3233280

+0

@ user3233280: Rara vez, si alguna vez, será eso lo que el usuario quiere, si está apareciendo una actividad no basada en la entrada del usuario. El usuario puede irritarse mucho si interrumpe su juego, y pueden morir si interrumpe su aplicación de navegación. Si nada más, usa una 'Notificación' de pantalla completa. – CommonsWare

-1

En la documentación, escriba android.intent.action.POWER_CONNECTED sin ACTION_.

+0

Debe ser . No entiendo lo que vas a decir. – prageeth

Cuestiones relacionadas