检查Android设备是否有search硬件button

我需要帮助确定如何检查设备是否配备了search硬件button。 这可能吗?

编辑:我正在谈论如果设备有search硬件button或不。 简单的问题。 每个Android设备都有一组硬件button; 菜单,主页button,后退button和searchbutton。 但是一些设备只配备了其中的一些,而不是全部。

编辑2:我之所以问,是因为我想要在我的用户界面中显示一个软件button,如果该设备没有配备硬件button。 我正在使用我的活动中的可search界面。 我没有遵循EditText / TextField方法。

Solutions Collecting From Web of "检查Android设备是否有search硬件button"

我不认为你需要检测,如果它实际上有一个search硬件button。 该框架将帮助你在这里(虽然,我相信这个过程将被简化一旦冰淇淋三明治发布)

目前,唯一没有硬件search的设备是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设备上工作,您可能需要使用兼容性库 ,或者在代码中使用reflection或其他警卫。

编辑

三星Galaxy S II没有专门的硬件searchbutton,但是如果按住菜单button几秒钟,它将开始充当硬件searchbutton。

更好的方式,你可以采取两种方式

  1. 把searchbutton,并调用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; } }); 

希望这会帮助你。