Начиная с 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;
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... enobscured