如何检测虚拟按钮(Android 4)?

时间:2012-03-09 13:27:54

标签: android button android-4.0-ice-cream-sandwich

我想检测运行Android应用程序的手机是否使用硬件按钮或虚拟按钮(Galaxy Nexus)。

有没有办法获取这些信息?

1 个答案:

答案 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)。