我想检测运行我的 Android 应用程序的手机是否使用硬件按钮或虚拟按钮 (Galaxy Nexus)。
有办法获取这些信息吗?
最佳答案
从 API 级别 14 开始,您可以使用 ViewConfiguration.hasPermanentMenuKey()检测设备是否有永久菜单键。
通常,虚拟按钮和物理按钮是互斥的,因此这会对您有所帮助。示例:
public class MyActivity extends Activity {
// ...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean hasPermanentMenuKey = ViewConfiguration.get(this).hasPermanentMenuKey();
boolean hasVirtualKeys = !hasPermanentMenuKey;
String message = hasVirtualKeys ? "This device has virtual menu keys" : "This device has physical keys";
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
// ...
}
警告:在某些情况下,这对您没有帮助。例如,假设制造商决定将虚拟键与物理菜单键一起使用;那么这个方法对你没有帮助。另一种情况是手机没有虚拟按键和物理菜单键(例如三星 S5)。
关于android - 如何检测虚拟按钮(Android 4)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9634814/