【发布时间】:2022-11-04 09:09:02
【问题描述】:
我需要在无障碍服务中检索事件源。为此,我必须将canRetrieveWindowContent="true" 添加到accessibilityServiceInfo xml。它在 java/android studio 中工作,但在 xamarin.android/VS 中它不想从 xml 中获取配置,我不知道为什么。如果我重命名 xml,我会得到文件未找到错误,因此它必须加载 xml,只是不将它用于accessibilityServiceInfo。
我的 xml (xml/accessibility_service_config.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:accessibilityFeedbackType="feedbackAllMask"
android:notificationTimeout="100"
android:canRetrieveWindowContent="true"
android:canRequestFilterKeyEvents="true"
/>
我的初始化:
[Service(Label = "myApp", Permission = Manifest.Permission.BindAccessibilityService)]
[IntentFilter(new[] { "android.accessibilityservice.AccessibilityService" })]
[MetaData("android.accessibilityservice.AccessibilityService", Resource = "@xml/accessibility_service_config")]
public class Receiver1 : AccessibilityService
{
protected override void OnServiceConnected()
{
base.OnServiceConnected();
AccessibilityServiceInfo info = ServiceInfo;
info.EventTypes = EventTypes.AllMask;
info.FeedbackType = Android.AccessibilityServices.FeedbackFlags.Spoken;
info.NotificationTimeout = 500;
info.Flags |= AccessibilityServiceFlags.Default;
info.Flags |= AccessibilityServiceFlags.ReportViewIds;
SetServiceInfo(info);
}
当我在AccessibilityServiceInfo info = ServiceInfo; 之后放置断点时,我看到无论我在 xml 中放什么,配置都没有加载。
【问题讨论】:
标签: android xamarin.android accessibilityservice