Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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
Java 主页按钮返回到我的应用程序_Java_Android - Fatal编程技术网

Java 主页按钮返回到我的应用程序

Java 主页按钮返回到我的应用程序,java,android,Java,Android,我正在制作一个汽车发射器应用程序,其中包含其他应用程序的快捷方式,当我在另一个应用程序中时,我想按下home按钮并返回我的发射器 因此,基本上我需要在我的应用程序之外覆盖home按钮,只有当我的应用程序在后台打开时,覆盖才会起作用,所以当我关闭我的应用程序时,home按钮会像往常一样起作用,将你带到默认的启动器 我可以实现这样的功能吗?或者我要求太多了?在Android上无法拦截home按钮,除非您将应用程序设置为home屏幕。这是出于安全原因,因此恶意应用程序无法通过覆盖所有可以退出的按钮来接

我正在制作一个汽车发射器应用程序,其中包含其他应用程序的快捷方式,当我在另一个应用程序中时,我想按下home按钮并返回我的发射器 因此,基本上我需要在我的应用程序之外覆盖home按钮,只有当我的应用程序在后台打开时,覆盖才会起作用,所以当我关闭我的应用程序时,home按钮会像往常一样起作用,将你带到默认的启动器


我可以实现这样的功能吗?或者我要求太多了?

在Android上无法拦截home按钮,除非您将应用程序设置为home屏幕。这是出于安全原因,因此恶意应用程序无法通过覆盖所有可以退出的按钮来接管您的设备。“主页”按钮是离开任何应用程序的唯一可靠方法


简言之,不,这是不可能的,即使是这样,也会严重破坏用户对应用程序行为的期望。

如果你想让你的应用程序成为一个替换主屏幕,你必须在安装说明中包含,以便用户将你的应用程序设置为默认启动器


然后“主页”按钮会将它们带到你的应用程序中。为了让它在不处于“汽车”模式时切换回默认的发射器,可能会有点棘手,但您可以通过某种分叉活动来实现这一点,该活动检查汽车模式是否启用,如果启用,则转到汽车模式发射器,如果不转到默认发射器(如果用户已经有了不同的第三方启动器,这会变得更加棘手)因此本质上你的应用程序将始终是主屏幕应用程序,无论汽车模式是否启用,但如果没有启用,则你手动启动“正常”主屏幕。

但是,在您的用例之外的场景中,每当用户按下home按钮时,这将提示用户选择要转到的主屏幕。@raghasood我不确定您的意思。如果用户从未选中“将此作为默认值使用”,则每次都会提示他们弹出框中的框“是”。否则将不会有任何提示,它将始终转到任一OP创建的“汽车模式主页”或者默认的主页。假定会有一些小部件、快捷方式、通知或其他东西,允许用户快速/轻松地进入和退出汽车模式。我的意思是,如果用户的主启动器与OP的应用程序不同。在这种情况下,两个启动器都可用。如果只有OP的launcher被使用了,然后就没问题了。啊,我明白了。我同意如果他们已经在使用另一个,那就有点麻烦了。我想你可以通过某种方式找出他们正在使用的第三方启动器的包/活动名称,然后手动启动它,而不是系统中内置的默认启动器。尽管我不知道具体如何启动获取这些信息,但我认为系统会以某种方式与您共享。是的。您应该能够获取这些信息。系统设置应用程序的源代码应该包含这些信息。