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

时间:2018-10-24 03:47:50

标签: android accessibilityservice

我有一个具有KIOS行为的应用程序。有一个“活动”将显示给用户,并且由于需要密码,用户无法后退或关闭该活动。

在一种情况下,App的所有者忘记了密码。因此,我需要在应用程序外部实施外部设置(例如IOS),以更改“共享首选项”上的值以关闭“活动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

2 个答案:

答案 0 :(得分:1)

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

  

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

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

答案 1 :(得分:0)

我已经用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。访客模式将调用常规设置活动,以在应用程序之外为我的应用程序设置其他设置。