Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在广播接收器中处理android.intent.category.HOME_Android_Android Intent_Android Activity - Fatal编程技术网

在广播接收器中处理android.intent.category.HOME

在广播接收器中处理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" /> &

我试图找到一种方法来处理广播接收器中的android.intent.category.HOME,当按下HOME按钮时,该接收器会发送另一个自定义intent

在这一点上,我只通过将以下内容添加到清单中,来添加一个活动,作为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完成它的工作,并了解事件的进展,但似乎如果我的应用程序没有标记为Launcher,我就无法接收带有action:MAIN和category:Home的广播


您能帮我找到一个解决方案吗?

Android中的
Intent
系统作为准消息总线运行。该总线上有三个独立通道:

  • 一个通道用于启动活动,例如当用户按下HOME按钮时
  • 一个通道用于启动或绑定到服务
  • 一个频道是广播频道
发起邮件的应用程序是选择频道的应用程序,而不是选择您作为潜在收件人的应用程序。在系统级,按HOME键会触发一个
startActivity()
调用以显示主屏幕。您无法自行决定
startActivity()
应触发广播或启动服务

似乎如果我的应用程序没有标记为启动器,我就无法接收带有action:MAIN和category:HOME的广播


即使您有一个“标记为启动器”的活动,您也无法在
BroadcastReceiver
中接收
MAIN
/
HOME
,因为HOME按钮启动一个活动。

Android中的
Intent
系统作为准消息总线运行。该总线上有三个独立通道:

  • 一个通道用于启动活动,例如当用户按下HOME按钮时
  • 一个通道用于启动或绑定到服务
  • 一个频道是广播频道
发起邮件的应用程序是选择频道的应用程序,而不是选择您作为潜在收件人的应用程序。在系统级,按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()
不会触发广播,并且不会根据类别进行更改。