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

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

我想检测运行我的 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/

相关文章:

android - 解析安装未获取 DeviceToken

android - 模拟器无法连接到 Google App Engine 开发服务器

android - 将 Android 应用程序上的 SQLite 数据库与远程 MySQL 数据库同步

android - 如何在抽屉导航中有部分

android - ADK 1.0 设备无法与 Jelly Bean 一起使用,为什么?

java - 在 Fragment 内调用 getActivity() 返回 null

javascript - 检查 DOM 元素是否可拖动并设置等于 JavaScript 变量?

android - 你如何制作尖头按钮? (箭头状)

android - 如何动态地将android属性layout_alignParentBottom设置为按钮