答案 0 :(得分:0)
adb shell getevent -lp
您将看到包含可能事件的输入设备列表。
向下滚动至包含KEY_VOLUMEUP
KEY_VOLUMEDOWN
或至少KEY_POWER
的关键设备。
如果您看到KEY_HOMEPAGE
或KEY_HOME
按钮是实体的。
如果不是,那就是虚拟的。
在java中处理:
try {
StringBuilder device_folder = new StringBuilder();
ArrayList<String> command_list2 = new ArrayList<String>();
command_list2.add("getevent");
command_list2.add("-lp");
ProcessBuilder process_builder2 = new ProcessBuilder().command(command_list2).redirectErrorStream(false);
Process process = process_builder2.start();
BufferedReader buffered_reader2 = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = "";
while ((line = buffered_reader2.readLine()) != null) {
device_folder.append(line + "\n");
}
if (device_folder.toString().contains("KEY_HOMEPAGE")
|| device_folder.toString().contains("KEY_HOME")) {
//physical button
}
else {
//virtual button
}
} catch (IOException e) {
e.printStackTrace();
}