【问题标题】:Xamarin.Android AccessibilityServiceInfo does not load configs from xmlXamarin.Android AccessibilityServiceInfo 不会从 xml 加载配置
【发布时间】:2022-11-04 09:09:02
【问题描述】:

我需要在无障碍服务中检索事件源。为此,我必须将canRetrieveWindowContent="true" 添加到accessibilityServiceInfo xml。它在 java/android studio 中工作,但在 xamarin.android/VS 中它不想从 xml 中获取配置,我不知道为什么。如果我重命名 xml,我会得到文件未找到错误,因此它必须加载 x​​ml,只是不将它用于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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多