2012-02-08 10 views
6

ユーザーがハードウェアメニューキーにアクセスできるかどうかをICS/HCが検出する方法はありますか?私はアクションバーの人口がどのように変化することを期待していた構成、例えばによってAndroid 4.0は、ユーザーがハードウェアのバック/ホームキーを持っているかどうかを検出します。

:ユーザーは物理ホームボタンを持っている場合

、アクションバーに示されているボタンの数を減らします。

おかげで、 ローレンス

+0

なぜあなたはアクションバーにそれらを持っていますか?彼らはすでにシステムバーに入っています。 –

+0

例は検索キーです。ユーザーが検索キーを持っていれば、アクションバーに表示したくありません。 – Ljdawson

+0

あなたはおそらく、[電話のモデル](http://developer.android.com/reference/android/os/Build.html#MODEL) – adneal

答えて

0

ICSとハニカム(悲しげに)私たちは、メニューボタンを表示したい時に設定するには、私たちをさせることなく、アクションバー、システムバーの組み合わせのためのメニューキーを交換し、両方。

ただ存在するとは仮定しないでください。または、ターゲットsdkを10に設定してください。これは常にメニューキー(3ドットのように見えます)を表示します。

とにかく、メニューボタンが存在するかどうかを確認する方法があれば面白いでしょう。

2

は私にいくつかの時間がかかったが、私はhasPermanentMenuKey(に頼るよりも信頼性の高い方法を発見した)は、メニューキーを持っていませんが、自宅&バックを持っていますHTCワンなどの新しい携帯電話のために動作しませんキーはソフトナビゲーションバーを表示(または表示)する必要はありません。これを回避するには、次のコードを試してください:

boolean hasMenuKey = ViewConfiguration.get(context).hasPermanentMenuKey(); 
boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK); 

if(!hasMenuKey && !hasBackKey) { 
    // Do whatever you need to do, this device has a navigation bar 
} 
+0

に基づいて物事を変える方が良いでしょう。ハードウェアキーのないNexus 6でもまだ戻りますKeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK)で真。 – Vlad

関連する問題