在广播接收器中处理android.intent.category.HOME
我试图找到一种方法来处理广播接收器中的android.intent.category.HOME,当按下HOME按钮时,该接收器会发送另一个自定义intent 在这一点上,我只通过将以下内容添加到清单中,来添加一个活动,作为Google Now Launcher的替代方案:在广播接收器中处理android.intent.category.HOME,android,android-intent,android-activity,Android,Android Intent,Android Activity,我试图找到一种方法来处理广播接收器中的android.intent.category.HOME,当按下HOME按钮时,该接收器会发送另一个自定义intent 在这一点上,我只通过将以下内容添加到清单中,来添加一个活动,作为Google Now Launcher的替代方案: <intent-filter> <action android:name="android.intent.action.MAIN" /> &
<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完成它的工作,并了解事件的进展,但似乎如果我的应用程序没有标记为Launcher,我就无法接收带有action:MAIN和category:Home的广播
您能帮我找到一个解决方案吗?Android中的
Intent
系统作为准消息总线运行。该总线上有三个独立通道:
- 一个通道用于启动活动,例如当用户按下HOME按钮时
- 一个通道用于启动或绑定到服务
- 一个频道是广播频道
startActivity()
调用以显示主屏幕。您无法自行决定startActivity()
应触发广播或启动服务
似乎如果我的应用程序没有标记为启动器,我就无法接收带有action:MAIN和category:HOME的广播
即使您有一个“标记为启动器”的活动,您也无法在
BroadcastReceiver
中接收MAIN
/HOME
,因为HOME按钮启动一个活动。Android中的Intent
系统作为准消息总线运行。该总线上有三个独立通道:
- 一个通道用于启动活动,例如当用户按下HOME按钮时
- 一个通道用于启动或绑定到服务
- 一个频道是广播频道
startActivity()
调用以显示主屏幕。您无法自行决定startActivity()
应触发广播或启动服务
似乎如果我的应用程序没有标记为启动器,我就无法接收带有action:MAIN和category:HOME的广播
即使您有一个“标记为启动器”的活动,您也无法在
BroadcastReceiver
中收到MAIN
/HOME
的消息,因为HOME按钮启动一个活动。您的目标与Android的设计意图相反。“主页”按钮用于将您带到主屏幕-如果用户尚未将其配置为您的应用程序,则您不必知道是否按下了该按钮。您的目标与Android的设计意图相反。“主页”按钮用于将您带到主屏幕-如果用户尚未将其配置为您的应用程序,则您不必知道是否已按下该按钮。谢谢,如果“主页”按钮仅会发送一个应用程序,而不是发送一个意向(如我所假设),则用于选择将使用哪个应用程序来处理主页请求的系统(Google Now Launcher或其他应用程序)与应用程序选择器中用于选择用于打开网页的应用程序(例如)的应用程序不同?请忽略以前的帖子,例如startActivity(new Intent(Intent.ACTION_MAIN)。addCategory(Intent.CATEGORY_HOME))当按下HOME(主页)按钮时,是否会调用android.intent.category.HOME?而android.intent.category.HOME不是广播意图?@Serj:“那么当按下HOME(主页)按钮时,是否会调用……之类的内容”--是。“android.intent.category.HOME不是广播意图?”--类别不是任何类型的Intent
。类别是字符串。如果我正确解释了您的真实问题,startActivity()
不会触发广播,并且不会根据类别进行更改。谢谢,如果home按钮只会发送一个应用程序,而不会发送一个Intent(正如我假设的那样),用于选择用于处理主页请求的应用程序(Google Now Launcher或其他应用程序)的系统与用于选择用于打开网页的应用程序(例如)的应用程序选择器中的系统不同?请忽略以前的帖子,例如startActivity(new Intent(Intent.ACTION_MAIN)。addCategory(Intent.CATEGORY_HOME))将在按下HOME按钮时被调用,而android.Intent.CATEGORY.HOME不是广播意图?@Serj:“那么当按下HOME按钮时将调用类似于……的内容”--是。“android.Intent.CATEGORY.HOME不是广播意图?”--类别不是任何类型的意图
。类别是字符串。如果我正确解释了您的真实问题,startActivity()
不会触发广播,并且不会根据类别进行更改。