我想检测运行Android应用程序的手机是否使用硬件按钮或虚拟按钮(Galaxy Nexus)。
有没有办法获取这些信息?
答案 0 :(得分:3)
从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)。