Информация о службе специальных возможностей не сообщается для приложений, в которых флаг filterTouchesWhenObscured имееAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Информация о службе специальных возможностей не сообщается для приложений, в которых флаг filterTouchesWhenObscured имее

Сообщение Anonymous »

Мое приложение зависит от событий доступности (например, AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED или AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED) и информации в объектах AccessibiltyNodeInfo на экране, чтобы обнаружить другие используемые приложения.
Начиная с Android 14, система больше не сообщает о каких-либо событиях доступности для приложений, для которых для параметра filterTouchesWhenObscured установлено значение true. AccessibilityNodeInfos, полученные с помощью getWindows() и accessibilityWindowInfo.getRoot(), также имеют значение NULL!
Я понятия не имею, почему этот флаг, который должен предотвращать перехват, когда представления скрыты , влияет на события доступности.
Кто-нибудь может предоставить соединение, чтобы мы могли найти возможное обходное решение или исправление?
РЕДАКТИРОВАТЬ:< /strong>
Я нашел этот метод в классе View исходного кода Android:

Код: Выделить всё

void calculateAccessibilityDataSensitive() {
// Use the explicit value if set.
if (mExplicitAccessibilityDataSensitive != ACCESSIBILITY_DATA_SENSITIVE_AUTO) {
mInferredAccessibilityDataSensitive = mExplicitAccessibilityDataSensitive;
} else if (getFilterTouchesWhenObscured()) {
// Views that set filterTouchesWhenObscured default to accessibilityDataSensitive.
mInferredAccessibilityDataSensitive = ACCESSIBILITY_DATA_SENSITIVE_YES;
} else if (mParent instanceof View && ((View) mParent).isAccessibilityDataSensitive()) {
// Descendants of accessibilityDataSensitive Views are also accessibilityDataSensitive.
mInferredAccessibilityDataSensitive = ACCESSIBILITY_DATA_SENSITIVE_YES;
} else {
// Otherwise, default to not accessibilityDataSensitive.
mInferredAccessibilityDataSensitive = ACCESSIBILITY_DATA_SENSITIVE_NO;
}
}
Представления, которые установили filterTouchesWhenObscured по умолчанию, считаются accessibilityDataSensitive, который был добавлен в Android 14. Я не уверен, почему они по умолчанию устанавливают этот параметр для приложений, которые установили filterTouchesWhenObscured когда они не просили об этом явно![/b] Очень раздражает.

Подробнее здесь: https://stackoverflow.com/questions/790 ... enobscured
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»