2

ユーザーがAndroidデバイスの中央のボタンを押したときにコードを実行することが不可欠なアプリがあります。私はすでにユーザーが右側のボタン(戻るボタン)を押すことを経由しonKeyDown(int keyCode, KeyEvent event) / if (keyCode == KeyEvent.KEYCODE_BACK)て処理しているので、中央のボタンを押すことも同様の方法で処理されると想定していました。しかし、さらに調査したところ、onKeyDownは呼び出されていないようです。だから私の質問は; センターボタンの押下をインターセプトするにはどうすればよいですか?

PS恥ずかしいことに、センターボタンが何と呼ばれているのかさえわかりません!

4

2 に答える 2

3

そのキーを傍受することはできません(ホームボタンについて話している場合)これは、ユーザーを短押しでランチャーに、長押しでマルチタスクメニューに移動するOS機能です。

コアアプリの品質ガイドラインでもある場合。

UX-N3任意の時点でホームボタンを押すと、デバイスのホーム画面に移動します。

検出できるのは、アプリケーションがを使用してバックグラウンドに送信されていることonStop()です。

onPause()Android 3.0より前では、アクティビティはヒットせずに直接強制終了できonStop()ました。onPause()したがって、ハニカム前のデバイスもターゲットにしている場合は、イベントも確認する必要があります。

于 2012-11-08T11:08:11.593 に答える
0

あなたが探している中央のボタンはおそらくKEYCODE_DPAD_CENTERです。それはしばしば電話の中心にあるでしょう。少なくとも古いものはそれを持っていますが、それはもはや一般的なことではありません。また、通常、テーブルには存在しません。

このボタンには、ほとんどのUI要素で、現在のものをクリックするデフォルトの動作があります。onKey...したがって、アプリで十字キーナビゲーションを使用するユーザーに対して、その機能を壊さないようにしてください(そして、からfalseを返します)。

于 2012-11-08T11:14:00.520 に答える