共享首选项上的辅助功能设置更改值

Accessibility setting change value on Shared Preferences

我有一个应用程序的行为类似于 KIOS。有一个 Activity 将显示给用户,用户无法返回或关闭它,因为它需要密码。

有一种情况是App的所有者忘记了密码。所以我需要在应用程序外部实施外部设置(如 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

我认为 AccessibilityService 不是您所需要的。因为医生说:

An Accessibility Service assists users with disabilities in using Android devices and apps. It is a long-running privileged service that helps users process information on the screen and lets them to interact meaningfully with a device.

我可以建议你使用像Firebase Push消息这样的远程调用,当程序收到一些特殊消息时它会更改密码或删除等

我用 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。访客模式将调用常规设置 Activity 为我的应用程序在应用程序之外设置另一个设置。