Невозможно получить доступ к кнопке установки в AccessibilityEvent при использовании установщика пакетов.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно получить доступ к кнопке установки в AccessibilityEvent при использовании установщика пакетов.

Сообщение Anonymous »

Я использую AccessibilityService на Android для автоматической установки приложений. Он отлично работал с версиями до Android 13. Однако с новым Android 14.
Я столкнулся с проблемой, заключающейся в том, что AccessibilityEvent и узлы не содержат Install Кнопка, при попытке найти ее с помощью nodeInfo.findAccessibilityNodeInfosByText("Installieren") - находится текст, содержащий строку "Installieren", но не кнопка. Вот изображение события с содержащимся в нем текстом — текст установки отсутствует.
Событие с диалоговым окном рядом с ним
Мой код, который сработал пока Android 14 не будет выглядеть так:

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

private boolean handlePackageInstallerEvent(AccessibilityEvent event) {
if (isWindowStateChgEvent(event)
&& event.getPackageName()!= null
&& PACKAGE_PACKAGEINSTALLER.equals(event.getPackageName().toString())) {
AccessibilityNodeInfo nodeInfo = event.getSource();
if (nodeInfo != null) {

// More code ...

if (childNodeInfos.isEmpty()) {
// Check for installation case
// Issue: does not find any Button with text "Installieren" from Android 14!
childNodeInfos = nodeInfo.findAccessibilityNodeInfosByText("Installieren");
}
for (AccessibilityNodeInfo childNodeInfo : childNodeInfos) {
if (childNodeInfo.getClassName().toString().contains("Button")) {
CharSequence text = childNodeInfo.getText();
boolean clickable = childNodeInfo.isClickable();
boolean enabled = childNodeInfo.isEnabled();
childNodeInfo.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
}
}
return true;
}
return false;
}
Даже если я вручную перемещаюсь по дереву, я не могу найти кнопку «Установить». Я попробовал небольшой трюк и активировал службу специальных возможностей в настройках телефона, чтобы она читала текст «Installieren» как аудиовыход и выделяла его рамкой: кажется, он там есть.
Когда я вручную нажимаю кнопку установки, я не получаю AccessibilityEvent (что-то вроде BorderChangeEvent).
Однако, когда я прослушиваю событие наведения и навожу курсор на Install нажимая кнопку мыши, я наконец получаю кнопку, но ее текст пуст и имеет тот же идентификатор, что и кнопка «Отмена».
Это новая мера безопасности, о которой я не знаю? Я уже проверил наличие новых разрешений, которые, возможно, потребуется добавить, но их нет.

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

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

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

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

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

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

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