Xamarin.Android AccessibilityServiceInfo 不从 xml 加载配置

Xamarin.Android AccessibilityServiceInfo does not load configs from xml

我需要在辅助功能服务中检索事件源。为此,我必须将 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.

中放置什么配置都没有加载

您可以将代码 [MetaData("android.accessibilityservice.AccessibilityService", Resource = "@xml/accessibility_service_config")] 更改为 [MetaData("android.accessibilityservice", Resource = "@ xml/accessibility_service_config")]。第一个参数是元数据的名称,遵循android.

中的规则