2010-01-20 15 views
7

Voglio fare qualcosa dopo che il telefono è stato messo nel caricabatterie. Così ho creato ChargingOnReciever:Android: Event ACTION_POWER_CONNECTED non viene inviato al mio BroadcastReceiver

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

e voglio che il mio ricevitore per ascoltare android.intent.action.ACTION_POWER_CONNECTED, così ho messo questo in palese:

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

Ma ChargingOnReceiver non è apparentemente è cominciato quando ho messo il mio G1 al caricatore (collegarsi al mio notebook tramite cavo USB). Ogni aiuto è molto apprezzato.

risposta

25

È ricevitore, non ricevente! Mi ci sono volute 5 ore per trovare questo stupido bug. Penso che il plugin per Android Eclipse dovrebbe fare un controllo della sintassi nel file manifest xml.

+1

ho anche sprecato il mio un giorno su questo numero – user3233280

0
  1. Non avviare un'attività da BroadcastReceiver.

  2. Hai esaminato LogCat nel momento in cui colleghi il cavo USB per vedere se ci sono messaggi registrati che potrebbero spiegare il tuo problema?

+0

1. Sto avviando l'attività solo a scopo di test, per vedere se onReceive è chiamato. 2. Purtroppo non ho trovato nulla di utile nei messaggi di registro ... – fhucho

+0

@CommonsWare puoi spiegare perché non dovremmo iniziare l'attività dal ricevitore di radiodiffusione – user3233280

+0

@ user3233280: Raramente, se mai, sarà ciò che l'utente vuole, se stai spuntando un'attività non basata sull'input dell'utente. L'utente può sentirsi molto irritato se interrompe il gioco e potrebbe diventare molto pericoloso se interrompe la sua app di navigazione. Se non altro, utilizza una "notifica" a schermo intero. – CommonsWare

-1

Nella documentazione, scrivere android.intent.action.POWER_CONNECTED senza ACTION_.

+0

Dovrebbe essere . Non capisco cosa dirai. – prageeth

Problemi correlati