У меня есть приложение, которое ведет себя как KIOS. Существует действие, которое будет отображаться пользователю, и пользователь не может вернуть или закрыть его, потому что ему нужен пароль.

Есть один случай, если владелец приложения забыл пароль. Поэтому мне нужно реализовать внешние настройки (например, IOS) вне приложения, чтобы изменить значение в моих общих настройках, чтобы закрыть Activity KIOS.

Я читал несколько статей, и близкий способ - использовать специальные возможности, но информацию и примеры об этом так сложно найти. Так что я все еще узнаю и проверяю это.

Вот что я сделал:

SettingProgram.java

public class SettingProgram extends AccessibilityService {
    public static boolean isGuestMode = false;

    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
//            isGuestMode = false;


    /*I want to 
      if switch the Accessibility turn on the boolean isGuestMode become true, 
      and if it turn off the isGuestMode become false
     */
    }

    @Override
    public void onInterrupt() { }

    @Override
    protected void onServiceConnected() {
        super.onServiceConnected();
    }
}

Accessibility_services.xml

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service 
xmlns:android="http://schemas.android.com/apk/res/android"
    android:description="@string/accessibility_service_description"
    android:accessibilityEventTypes="typeAllMask"
    android:accessibilityFlags="flagReportViewIds"
    android:canRetrieveWindowContent="true"
    android:canRequestTouchExplorationMode="true"
    android:accessibilityFeedbackType="feedbackSpoken"
    android:notificationTimeout="100" 
    android:settingsActivity="com.mobile.Testing.SettingProgram"/>

Я прочитал:

https://codelabs.developers.google.com/codelabs/developing-android-a11y-service/index.html?index=..%2F..%2Findex#0

https://developer.android.com/guide/topics/ui/accessibility/services

1
MrX 24 Окт 2018 в 06:47

2 ответа

Лучший ответ

Я сделал это с помощью Accessibility Service, чтобы вызвать другой макет. Вот способ:

• Я создаю XML-файл специальных возможностей, как указано в документации, как показано ниже:

<accessibility-service
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:description="@string/accessibility_service_description"
   android:accessibilityFeedbackType="feedbackGeneric"
   android:accessibilityFlags="flagDefault"
   android:canRetrieveWindowContent="true"
   android:settingsActivity="com.mobile.vhp.checkin.SettingAndList.GeneralSetting"/>   

Из-за этого у меня есть служба специальных возможностей для моего приложения в настройках, у которых есть и имя меню параметров Guest Mode. В гостевом режиме вызывается действие общих настроек, чтобы установить другой параметр для моих приложений вне приложения.

0
MrX 28 Дек 2018 в 01:41

Не думаю, что AccessibilityService - это то, что вам нужно. Потому что документ говорит:

Служба доступности помогает пользователям с ограниченными возможностями использовать устройства и приложения Android. Это долгосрочная привилегированная служба, которая помогает пользователям обрабатывать информацию на экране и позволяет им осмысленно взаимодействовать с устройством.

Я могу предложить вам использовать удаленный вызов, например сообщение Firebase Push, когда программа получает какое-то специальное сообщение, она изменяет пароль или удаляет и т. Д.

1
Axbor Axrorov 24 Дек 2018 в 17:59
52960810