Я работал над приложением, которое отображает все уведомления в строке состояния телефона (например, новое сообщение или пропущенный звонок). Проведя исследования, я обнаружил, что единственный способ сделать это в Android - это создать службу доступности. Поэтому я сделал то же самое, получив AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED в моей службе специальных возможностей.
Вот мой метод onServiceConnected ():
public void onServiceConnected(){
if (isInit) {
return;
}
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
info.feedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN;
setServiceInfo(info);
isInit = true;
}
Это работает, но не совсем так. На самом деле он показывает много уведомлений, которых нет в строке состояния и которые, вероятно, генерируются фоновыми приложениями, которые мне не нужны. Также это не в реальном времени. Он обновляется, только когда я повторно открываю приложение, а не когда оно открыто. Кроме того, как только я запускаю службу в настройках, мой телефон (галактическая нота) начинает говорить все. Не уверен, что это ошибка или какая-то проблема в коде.
Я не могу понять, где именно проблема, но я думаю, что это может быть тип обратной связи. Я много пробовал, но нигде не мог понять, что означают разные типы обратной связи для сервиса.
FEEDBACK_AUDIBLE
FEEDBACK_HAPTIC
FEEDBACK_AUDIBLE
FEEDBACK_VISUAL
FEEDBACK_GENERIC
Подскажите, пожалуйста, что означают эти типы обратной связи? И буду ли я получать другие уведомления, если изменю тип обратной связи? И если вы считаете, что я иду в неправильном направлении, пожалуйста, объясните мне, что я могу сделать для решения этих проблем. Дай мне знать, если я забыл предоставить важную информацию.
Будем очень благодарны за любую помощь.