Как получить BroadcastReceiver for Action: android.intent.action.MAIN и android.intent.category.HOME в приложении «Мой Android» - PullRequest
4 голосов
/ 27 декабря 2011

Каждый

Могу ли я получить BroadcastReceiver для этого намерения, когда я нажимаю клавишу home:

       Starting activity: Intent { act=android.intent.action.MAIN   cat=   [android.intent.category.HOME] flg=0x10200000 cmp=com.htc.launcher/.Launcher }

Я не хочу рассматривать com.htc.luncher, так как он будет другимдля другого устройства Android.

Вот мой простой класс для BroadcastReceiver:

 public class HomeBrodcast extends BroadcastReceiver{

 @Override
 public void onReceive(Context context, Intent intent) {
    Bundle bundle = intent.getExtras();


 }

}

В манифесте:

  <receiver android:name="xxx.yyy.zzz.sss.HomeBrodcast">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"></action>
            <categary android:name="android.intent.category.HOME"/>
        </intent-filter>
    </receiver>

Для регистрации BroadcastReceiver в моей деятельности:

          mHomeBrodcast=new HomeBrodcast();
      IntentFilter mHomeFilter=new IntentFilter("android.intent.action.MAIN");
      mHomeFilter.addCategory("android.intent.category.HOME");
      registerReceiver(mHomeBrodcast, mHomeFilter);

Теперь проблема в том, когда после запуска моего приложения я нажимаю кнопку «Домой», нажимаю и «Мой журнал» показывает мне это намерение:

  12-27 14:01:11.230: I/ActivityManager(123): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.htc.launcher/.Launcher }

Поэтому моя цель - получить получателя для этого намерения, но когда я отлаживаюЯ не получаю что-то, что-то должно делать меня неправильно. Что должно быть проблемой в получении этого намерения BroadCast.

Ответы [ 3 ]

2 голосов
/ 24 марта 2012

правописание категории прямо в манифесте должно помочь:)

0 голосов
/ 11 апреля 2018

Android внутренне вызывает startActivity для запуска зарегистрированного компонента ACTION_MAIN для запуска средства запуска. Поскольку вы зарегистрированы в получателе, он не будет вызываться, если он не вызывает sendBroadast. Надеюсь, это поможет

0 голосов
/ 30 марта 2015

Я не думаю, что вы можете получить эту функциональность, см. https://groups.google.com/forum/#!topic/android-developers/fNTysSA8mWQ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...