android - 检查 Android 设备是否有搜索硬件按钮

标签 android search hardware

我需要帮助弄清楚如何检查设备是否配备搜索硬件按钮。这可能吗?

编辑:我说的是查明设备是否有搜索硬件按钮。简单的问题。每个安卓设备都有一组硬件按钮;菜单、主页按钮、后退按钮和搜索按钮。但有些设备只配备了其中的一部分,而不是全部。

编辑 2:我问的原因是因为如果设备没有配备硬件按钮,我想在我的 UI 中显示一个软件按钮。我正在使用 searchable我的 Activity 中的界面。我没有遵循 EditText/TextField 方法。

最佳答案

我认为您不需要检测它是否真的有搜索硬件按钮。该框架将在这里为您提供帮助(不过,我相信一旦 Ice Cream Sandwich 发布,这个过程将会得到简化)

目前,唯一没有硬件搜索的设备是 Honeycomb 平板电脑。因此,通过使用 android:targetSdkVersion="11"(或更高版本),将 implements OnQueryTextListener 添加到您的 FragmentActivity,然后添加如下内容:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.notebooks_menu, menu);
    final SearchView sv = new SearchView(getActivity());
    sv.setOnQueryTextListener(this);
    menu.findItem(R.id.search_notebooks).setActionView(sv);
}

您将从根本上解决问题。现在,要让它在 Honeycomb 之前的设备上运行,您可能需要使用 compatibility library ,或者在您的代码中使用反射或其他一些守卫。

编辑

Samsung Galaxy S II 没有专用的硬件搜索按钮,但如果您按住菜单按钮几秒钟,它将开始用作硬件搜索按钮。 p>

关于android - 检查 Android 设备是否有搜索硬件按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7269891/

相关文章:

hardware - 容错(辐射)软核?

Android:像带 fragment 的 Activity 一样的向导

java - 减少 Java 的操作时间

hardware - 多核编程

c - 查找 C 字符串中的位置

java - Lucene/Hibernate Search - 查询关联的集合?

c - PThreads上下文中的多处理器与多线程

android - Localytics - 以编程方式设置应用程序 key

android - 具有可拖动内容的 KineticJS Web 应用程序极其缓慢,并且不断导致 Android 和 iPhone 崩溃

android - 如何更改 fragment 的大小?