我正在尝试在广播接收器中找到一种处理android.intent.category.HOME的方法,该按钮在按下主页按钮时发送另一个自定义意图。
此时我设法只添加一个Activity作为Google Now Launcher的替代品,方法是将其添加到清单中:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
但我不想更改默认的Home应用程序,我只是让Google Now Launcher做了什么,并且也被告知了这个事件,但似乎如果我的APP没有被标记为启动器我我无法通过动作接收广播:MAIN和类别:HOME。
你能帮我找一个解决方案吗?
答案 0 :(得分:4)
Android中的Intent
系统作为准消息总线运行。该总线上有三个独立的通道:
启动邮件的应用是选择频道的应用,而不是您作为潜在收件人的应用。在系统级别,按HOME将触发startActivity()
调用以调出主屏幕。您不能自己决定startActivity()
应该触发广播或启动服务。
似乎如果我的APP没有标记为启动器,我无法通过操作收到广播:MAIN和类别:HOME
即使您的活动被标记为发射者&#34;您无法在MAIN
中收到HOME
/ BroadcastReceiver
的邮件,因为HOME按钮会启动活动。