Monodroid中的AccessibilityService

时间:2012-03-02 20:21:54

标签: xamarin.android

简单的问题......很可能不是简单的答案:)

我想在monodroid中为android编写一个辅助功能服务。我发现很难弄清楚这些碎片。我可以从AccessibilityService继承,但是没有AccessibilityServiceAttribute。我需要清单文件中的特定内容,但显然monodroid并不直接支持intent filter和service xml ...我相信。

我怀疑这是许多人所做的事情,但作为Monodroid的初学者,我认为我主要是发现难以将支持良好的“正常”应用程序开发放在一起,而“支持”但不是非常,可访问性服务开发。

我很感激任何指针。谢谢你们。

1 个答案:

答案 0 :(得分:1)

根据docs

  

可访问性被声明为AndroidManifest.xml中的任何其他服务,但它还必须指定它处理“android.accessibilityservice.AccessibilityService”意图。未能声明此意图将导致系统忽略辅助功能服务。

由于它的声明方式与任何其他服务相同,因此您可以使用ServiceAttributeIntentFilterAttribute在AndroidManifest.xml中生成条目。例如:

[Service]
[IntentFilter(new[] { "android.accessibilityservice.AccessibilityService" })]
public class MyAccessibilityService : AccessibilityService
{
    public override void OnAccessibilityEvent(AccessibilityEvent e)
    {

    }

    public override void OnInterrupt()
    {
    }
}

构建应用程序时,Mono for Android将在清单中生成此内容:

<service android:name="sample.MyAccessibilityService">
  <intent-filter>
    <action android:name="android.accessibilityservice.AccessibilityService" />
  </intent-filter>
</service>