Android覆盖主页密钥

时间:2011-02-18 09:17:52

标签: android key android-launcher android-homebutton

正如问题所示,我知道我们无法覆盖Home键事件,但如果您查看 android 2.2 的模拟器,您会看到一个应用程序 Car Home 它已经覆盖了大部分键,如Home,end call。

现在,关键是他们是如何做到的?我试图窥视应用程序的源代码,但令我惊讶的是它不可用或我无法找到它,但我不认为以后是这种情况。

3 个答案:

答案 0 :(得分:9)

我同意@Romain Guy

您无法覆盖主页按钮的行为。

Car Home应用的功能:它将自己定义为启动器。您也可以将自己定义为启动器,并在主屏幕即将启动时收到通知。

检查出来:Intent.html#CATEGORY_LAUNCHER

请注意,这并不意味着在按下主页按钮时会通知您的应用/活动,以便它可以覆盖其行为,但会在系统即将启动主屏幕时收到通知。两者都是不同的东西。在这种类型的通知中,Android已经将应用程序(当前正在执行)发送到冻结状态,并且它无法控制正在发生的事情。

据我所知。如果我在任何地方出错,我猜@Romain Guy可能会纠正我。

答案 1 :(得分:4)

它不会覆盖Home键,Car Home应用程序只是作为启动器运行,任何应用程序都可以执行。此行为在清单文件中声明。

答案 2 :(得分:1)

在4.0上看起来如下:

在AndroidManifest.xml中

<intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.HOME"/>
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>