Android 可访问性设置更改共享首选项的值

Android 可访问性设置更改共享首选项的值,android,accessibilityservice,Android,Accessibilityservice,我有一个应用程序,它的行为就像KIOS。有一个活动将显示给用户,用户无法返回或关闭它,因为它需要密码 有一种情况是应用程序的所有者忘记了密码。因此,我需要在应用程序外部实施外部设置(如IOS),以更改共享首选项的值,从而关闭活动KIO 我读了一些文章,最接近的方法是使用可访问性,但是关于这方面的信息和示例很难找到。所以我仍然在学习和测试它 以下是我所做的: SettingProgram.java public class SettingProgram extends AccessibilityS

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

有一种情况是应用程序的所有者忘记了密码。因此,我需要在应用程序外部实施外部设置(如IOS),以更改共享首选项的值,从而关闭活动KIO

我读了一些文章,最接近的方法是使用可访问性,但是关于这方面的信息和示例很难找到。所以我仍然在学习和测试它

以下是我所做的:

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();
    }
}
可访问性\u 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"/>


我认为可访问性服务不是您所需要的。因为医生说:

无障碍服务帮助残疾用户使用 Android设备和应用程序。这是一个长期运行的特权服务 帮助用户处理屏幕上的信息,并允许他们 与设备进行有意义的交互


我可以建议您使用远程调用,如Firebase Push message,当程序收到一些特殊消息时,它将更改密码或删除等。

我已使用辅助功能服务调用另一个布局。下面是方法:

•我创建可访问性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"/>   


从那以后,我在设置中为我的应用程序提供了可访问性服务,其中有选项菜单名
来宾模式
。来宾模式将调用“常规设置”活动,为应用程序之外的我的应用程序设置另一个设置

谢谢你的建议,但我不使用Firebase,我有自己的服务。我已经把我的答案贴在下面了。非常感谢。