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

时间:2011-09-01 11:53:38

标签: android search hardware

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

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

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

2 个答案:

答案 0 :(得分:1)

我认为你不需要检测它是否真的有搜索硬件按钮。该框架将帮助您(尽管如此,我确信一旦冰淇淋三明治发布,这个过程将会简化)

目前,唯一没有硬件搜索功能的设备是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,或者在代码中使用反射或其他一些防护。

修改

三星Galaxy S II没有专用的硬件搜索按钮,但如果您按住菜单按钮几秒钟,它将开始充当硬件搜索按钮。

答案 1 :(得分:-2)

更好的方法是你可以采用两种方式

  1. 点击搜索按钮并致电onSearchRequested();

  2. 第二种方式点击editText放android:imeOptions="actionSearch",这样你就需要了 检查密钥

    searchBox.setOnEditorActionListener(new OnEditorActionListener()
    {
        public boolean onEditorAction(TextView textView, int id,KeyEvent event) 
        {
        if (id == EditorInfo.IME_ACTION_SEARCH)
            {
                 //do what ever you want
            }
        return true;
        }
    });
    
  3. 希望这会对你有所帮助。