Физическое нажатие кнопки «Домой» можно легко обнаружить на большинстве устройств:
...
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()
метод возвращает "размер емкостного объекта, а не буквальное давление".
Мне не нужна информация об уровне давления, я просто хочу знать, нажата ли чувствительная к давлению кнопка виртуального дома.