2010-06-04 60 views
6

某些用戶告訴我,我的Android應用不可用,因爲他們的設備沒有MENU鍵。在沒有MENU鍵的情況下處理Android設備

處理這些設備的最佳方式是什麼?是否有可能檢測到設備是否缺少菜單鍵,並且僅在此情況下才顯示菜單按鈕?

而最重要的是,你如何在模擬器中測試這個?

謝謝。

編輯:顯然問題是用戶不知道菜單鍵被稱爲菜單鍵。

編輯此外,一些非官方的Android設備,如Eken和aPad,沒有物理菜單鍵。

+0

出於興趣,這是什麼設備?到目前爲止,我看到的每個設備,無論是否有軌跡球,方向鍵,硬通話按鈕,或是平板電腦設備,都有一個菜單按鈕。 – 2010-06-04 08:49:12

+0

問他們倆。有人說這是摩托羅拉Droid,我敢肯定它有一個菜單按鈕。對不起,我很可能很早就問過這個問題了。 – hpique 2010-06-04 09:22:53

+0

Galaxy Nexus也沒有。 – Flame 2012-01-09 15:06:13

回答

2

我很驚訝,有設備沒有菜單在那裏,如我的評論中所述。

由於此最近的問題提到了,確實沒有檢測這個任何API規定:
Programatically detect presence of hardware call/hang up keys

這也似乎沒有,你可以模擬使用AVD「菜單鍵」硬件選項:
http://developer.android.com/guide/developing/tools/avd.html#hardwareopts

+1

我認爲@Christopher是正確的 - 我認爲每個Android手機都有一個菜單按鈕,但它可能不會說「菜單」。 – 2010-06-04 09:03:52

+3

兼容性定義文檔(CDD)規定所有Android設備必須具有菜單鍵或等同手勢,觸摸面板等。http://source.android.com/compatibility/index.html – CommonsWare 2010-06-04 12:08:27

+0

家庭和返回。因此,像X10這樣的設備有這些按鈕,只有屏幕下方的那些按鈕:) – 2010-06-04 14:37:44

7

從Android 3.0(API等級11)開始,設備不需要具有專用的菜單按鈕。 (閱讀更多關於此處:http://developer.android.com/guide/topics/ui/menus.html

這意味着您應該爲您的用戶提供另一種方式來激活菜單。您可以創建一個按鈕,並在按下時撥打openOptionsMenu();

+0

'當targetSdkVersion <= 10時,設備實現必須嚮應用程序提供菜單鍵,並且當targetSdkVersion> 10時,應用程序不應呈現菜單鍵。' – 2012-11-28 22:44:02

+1

這很糟糕,因爲我喜歡乾淨的用戶界面並隱藏了選項 – 2012-11-28 22:44:47

2

檢查設備是否有菜單鍵:

ViewConfiguration.get(context).hasPermanentMenuKey();

相關問題