Android:以编程方式检测设备是否具有硬件菜单button
我目前正在努力解决这个问题。 我需要检查安装应用程序的设备是否有硬件菜单键。 由于在Galaxy Nexus等设备上并不存在,所以在这种情况下,我直接在UI中显示它。
我已经看了PackageManager.hasSystemFeature(),但没有发现有用的东西。
有没有人已经这样做?
ViewConfiguration.get(context).hasPermanentMenuKey()
有关更多信息,请参阅ViewConfiguration#hasPermanentMenuKey()
。 请注意,这只适用于API级别14+(Android 4.0冰淇淋三明治或更新)。
if(Build.VERSION.SDK_INT <= 10 || (Build.VERSION.SDK_INT >= 14 && ViewConfiguration.get(this).hasPermanentMenuKey())) { // menu key is present } else { //No menu key }
即使在运行Honeycomb的设备上,系统也会为为Android 2.x版本编写的应用程序提供一个“菜单button”。 只有它被称为“溢出菜单”。 所以没有必要检查是否会有这样一个button,如果需要的话,它会在那里。
作为一般指导原则,您应该检查特定的function,而不是查看系统/ API版本号。 如果可用,请使用ActionBar类,否则回退到2.x选项菜单。
你看过Google的行动栏教程吗? 这使得你应该做的更清楚。
我认为一个可能的更好的解决scheme是添加一个自己的操作栏。 所以每个设备都可以看到它,而且您不必检查硬件configuration或Api版本。
keysoft修饰符用于检测硬件键盘而不是导航栏。
本文解决它:
检查导航栏
如果你想要一个资源限定符,这可能是因为你想区分UI,可以使用keyssoft
资源限定符。