我有一个具有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://developer.android.com/guide/topics/ui/accessibility/services
答案 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
。访客模式将调用常规设置活动,以在应用程序之外为我的应用程序设置其他设置。