2010-01-20 12 views
7

Chcę coś zrobić po tym, jak telefon zostanie umieszczony w ładowarce. Więc stworzony ChargingOnReciever:Android: Wydarzenie ACTION_POWER_CONNECTED nie jest wysyłane do mojego BroadcastReceiver

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

i chcę mój odbiornik słuchać android.intent.action.ACTION_POWER_CONNECTED, więc umieścić to w manifeście:

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

Ale ChargingOnReceiver nie jest najwyraźniej zaczęło się, gdy kładę G1 ładowarka (podłącz do mojego notebooka za pomocą kabla USB). Każda pomoc jest doceniana.

Odpowiedz

25

To odbiornik, nie odbiornik! Zajęło mi to 5 godzin, aby znaleźć ten głupi błąd. Myślę, że plugin Android Eclipse powinien wykonać pewne sprawdzanie składni w manifeście xml.

+1

Zmarnowałem też jeden dzień na ten numer – user3233280

0
  1. Nie zaczynaj działalności od BroadcastReceiver.

  2. Czy sprawdziłeś LogCat w momencie podłączania kabla USB, aby zobaczyć, czy są jakieś zarejestrowane wiadomości, które mogą wyjaśnić twój problem?

+0

1. Rozpoczynam działanie wyłącznie w celach testowych, aby sprawdzić, czy wywołano funkcję onReceive. 2. Niestety nie mogłem znaleźć niczego przydatnego w komunikatach dziennika ... – fhucho

+0

@CommonsCzy możesz wyjaśnić, dlaczego nie powinniśmy rozpocząć działalność od nadawcy odbiorczego – user3233280

+0

@ user3233280: Rzadko, jeśli kiedykolwiek, to będzie to, co użytkownik chce, jeśli pojawia się aktywność nie oparta na danych wprowadzanych przez użytkownika. Użytkownik może bardzo się zirytować, jeśli przerwie grę i może się bardzo martwić, jeśli przerwie aplikację nawigacyjną. Jeśli nic więcej, użyj pełnoekranowego "Powiadomienia". – CommonsWare

-1

W dokumentacji napisz android.intent.action.POWER_CONNECTED bez ACTION_.

+0

Powinien to być . Nie rozumiem, co masz zamiar powiedzieć. – prageeth

Powiązane problemy