Физическое нажатие кнопки «Домой» может быть легко обнаружено на большинстве устройств:
...
public class ExampleAccessibilityService extends AccessibilityService {
...
@Override
protected boolean onKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KEYCODE_HOME && event.getAction() == ACTION_DOWN)
Log.d("Example", "The home key is pressed.");
return super.onKeyEvent(event);
}
}
Но приведенный выше код не работает на некоторых устройствах, которые имеют чувствительную к давлению кнопку виртуального дома. Я предполагаю, что эти устройства Samsung Galaxy затронуты: S8 , S8 + , S9, S9 +, Note10, Note10 + и Fold . Официально это считается датчик давления, а не кнопка.
Как читать этот датчик?
TYPE_PRESSURE
событие датчика относится к барометру, показывает давление окружающего воздуха в гПа или мбар .
Метод getPressure()
возвращает "размер емкостного объекта, а не буквальное давление" .
Мне не нужна информация об уровне давления, я просто хочу знать, является ли чувствительная к давлению кнопка виртуального дома нажат.