1

正如问题所暗示的,我知道我们不能覆盖 Home 键事件,但如果你查看android 2.2的模拟器,你会看到一个应用程序Car Home,它已经覆盖了大多数键,如 Home、结束通话。

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

4

3 回答 3

9

我同意@Romain Guy

您不能覆盖主页按钮的行为。

Car Home应用程序的作用:它已将自己定义为启动器。您还可以将您的定义为启动器,当主屏幕即将启动时,它会收到通知。

看看这个:Intent.html#CATEGORY_LAUNCHER

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

这是据我所知。@Romain Guy如果我在任何地方错了,我想可能会纠正我。

于 2011-02-18T10:23:55.347 回答
4

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

于 2011-02-18T09:27:16.327 回答
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>
于 2012-10-06T07:13:32.643 回答