Я работаю над проектом, в котором нам нужно предупредить пользователя, когда отображается диалоговое окно питания. Чтобы отобразить диалоговое окно питания (диалоговое окно выключения/перезагрузки), мы используем AccessibilityService
вместе с performGlobalAction(GLOBAL_ACTION_POWER_DIALOG)
. Это работает, однако, когда отображается это диалоговое окно, не возникает никаких других событий, даже несмотря на то, что мы поместили каждый отдельный тип события, тип обратной связи и флаг в файл accessibilityservice.xml
. Это код, который у нас есть прямо сейчас:
Служба доступности:
@Override
public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
Log.d("TESTING", "EVENT CODE: " + accessibilityEvent.getEventType()); //No event is happening when the power dialog is shown
switch (accessibilityEvent.getEventType()){
performGlobalAction(GLOBAL_ACTION_POWER_DIALOG);
}
}
доступностьservice.xml:
<accessibility-service
xmlns:android="http://schemas.android.com/apk/res/android"
android:accessibilityEventTypes="typeAllMask"
android:packageNames="com.testingaccessibility"
android:accessibilityFeedbackType="feedbackAllMask"
android:accessibilityFlags="flagDefault"
android:canRetrieveWindowContent="true"
android:canRequestEnhancedWebAccessibility="true"
android:canRequestFilterKeyEvents="true"
android:canRequestTouchExplorationMode="true"/>
Как видите, я открываю диалоговое окно питания нажатием кнопки, и здесь можно предупредить пользователя, но я не могу этого сделать, когда пользователь долго нажимает кнопку питания.
Итак, можно ли отправить событие доступности при открытии диалогового окна питания?