2010-06-04 209 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();

相关问题