2010-01-20 5 views
7

Я хочу что-то сделать после того, как телефон поставлен в зарядное устройство. Так что я создал ChargingOnReciever:Android: Событие ACTION_POWER_CONNECTED не отправлено на мой BroadcastReceiver

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

, и я хочу, чтобы мой приемник, чтобы слушать android.intent.action.ACTION_POWER_CONNECTED, так что я положил это в манифесте:

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

Но ChargingOnReceiver, по-видимому, не началось, когда я кладу G1 к зарядному (подключитесь к ноутбуку через USB-кабель). Буду признателен за любую оказанную помощь.

ответ

25

Это приемник, не приемник! Мне понадобилось 5 часов, чтобы найти эту глупую ошибку. Я думаю, что плагин Android Eclipse должен выполнить некоторую проверку синтаксиса в манифесте xml.

+1

Я тоже потратил свой день на этот вопрос – user3233280

0
  1. Не начинайте деятельность с BroadcastReceiver.

  2. Вы проверили LogCat во время подключения USB-кабеля, чтобы узнать, есть ли какие-либо зарегистрированные сообщения, которые могут объяснить вашу проблему?

+0

1. Я начинаю деятельность только для целей тестирования, чтобы узнать, вызывается ли onReceive. 2. К сожалению, я не мог найти ничего полезного в сообщениях журнала ... – fhucho

+0

@CommonsWare может объяснить вам, почему мы не должны начинать активность с широковещательного приемника – user3233280

+0

@ user3233280: Редко, если это когда-либо, это будет то, что пользователь хочет, если вы активируете активность, не основанную на пользовательском вводе. Пользователь может сильно раздражаться, если вы прерываете игру, и они могут очень сильно погибнуть, если вы прервите их навигационное приложение. Если ничего больше, используйте полноэкранное «Уведомление». – CommonsWare

-1

В документации, напишите android.intent.action.POWER_CONNECTED без ACTION_.

+0

Это должно быть . Я не понимаю, что вы собираетесь сказать. – prageeth

Смежные вопросы