1

質問が示唆するように、Home キー イベントをオーバーライドできないことはわかっていますが、Android 2.2のエミュレーターを調べると、 Car Homeアプリケーションが Home、end call などのほとんどのキーをオーバーライドしていることがわかります。

さて、ポイントは彼らがどのようにそれをしたかです。アプリのソースコードを覗いてみましたが、驚いたことに、利用できないか、見つけることができませんでしたが、後でそうではないと思います。

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 に答える