Java 检查Android设备的代码中是否有特定的硬件按钮
我需要检查某个安卓设备的代码中是否有硬件按钮。例如,只有一些手机有搜索按钮。 那么,如何检查设备是否有硬件按钮(搜索、摄像头、d-pad等)?您可以使用。Java 检查Android设备的代码中是否有特定的硬件按钮,java,android,button,hardware,Java,Android,Button,Hardware,我需要检查某个安卓设备的代码中是否有硬件按钮。例如,只有一些手机有搜索按钮。 那么,如何检查设备是否有硬件按钮(搜索、摄像头、d-pad等)?您可以使用。 例如: 您还可以通过,例如DPAD,获得一些无法通过PackageManager进行测试的功能 Configuration c = getResources().getConfiguration(); if(c.navigation == Configuration.NAVIGATION_DPAD) hasDpad = true;
例如: 您还可以通过,例如DPAD,获得一些无法通过
PackageManager
进行测试的功能
Configuration c = getResources().getConfiguration();
if(c.navigation == Configuration.NAVIGATION_DPAD)
hasDpad = true;
唯一的例外是搜索按钮。几天前这里有一个问题,问的基本相同。我不记得任何答案,也不知道如何检测搜索按钮,因为它不在功能列表中。(编辑:就这样,可能的重复线程就是我在这里提到的线程)这里有一个很好的方法来检查硬件“菜单”按钮是否存在:
ViewConfiguration.get(context).hasPermanentMenuKey();
发件人:
另请参见:我知道这篇文章已经有一年多的历史了,但它仍然出现在谷歌搜索中(在第一页)。我想,如果像我这样的人正在搜索相同的东西,我会发布一个关于我正在使用的东西的轻微更新或建议
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
Toast.makeText(this,"VOL Down", Toast.LENGTH_LONG).show();
return true;
} else if(keyCode == KeyEvent.KEYCODE_SEARCH){
Toast.makeText(this,"search", Toast.LENGTH_LONG).show();
return false;
}else{
Toast.makeText(this,"Vol Up", Toast.LENGTH_LONG).show();
return true;
//return super.onKeyDown(keyCode, event);
}
}
我已将onCreate()放在了外侧。。这在我的Thunderbolt(根运行MikMik GingerGrits)上运行得很好。复制自Well我问了一个检查硬件按钮的一般方法,他们只是要搜索按钮。太棒了。虽然我对搜索按钮感到羞耻,但我会勾选这个,然后看另一个线程。我不认为这个答案可以接受,这只会检查设备上是否安装了摄像头,而不会检查设备上是否安装了摄像头硬件按钮。恐怕SDK中没有这样的功能。很高兴知道。对于任何使用它的人,请注意它需要API14及以上版本。最初,我需要在显示应用程序之前检查设备是否有硬件按钮。这只会在按下硬件按钮后起作用。但谢谢分享。这是一个有效的解决方案。是的,我和HTC ADR6300查过了。这是检测硬件搜索按钮笔划的最佳方法。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
Toast.makeText(this,"VOL Down", Toast.LENGTH_LONG).show();
return true;
} else if(keyCode == KeyEvent.KEYCODE_SEARCH){
Toast.makeText(this,"search", Toast.LENGTH_LONG).show();
return false;
}else{
Toast.makeText(this,"Vol Up", Toast.LENGTH_LONG).show();
return true;
//return super.onKeyDown(keyCode, event);
}
}