heathkit
heathkit

Reputation: 573

Testing an android accessibility service?

I'm developing an Android application with a service that extends AccessibilityService. I'd like to be able to test this without mocking out the accessibility framework.

Does anyone have some recommendation on the best way to go about this?

I'd like to set up some different activities, move between them, and verify that my accessibility service responds correctly. I tried using a ServiceTestCase, but unfortunately that requires you set up the service yourself. I'm not sure how to set it up in a way similar to how the accessibility framework will set it up for me.

Upvotes: 8

Views: 1570

Answers (1)

Alejandro Colorado
Alejandro Colorado

Reputation: 6094

Based on:

Create a Service extending AccessibilityService:

public class TestService extends AccessibilityService {

  @Override
  public void onAccessibilityEvent(AccessibilityEvent evt) {
    //Your coding here   
  }

}

In your manifest file:

<service android:name=".TestService" android:enabled="true" >
    <intent-filter>
        <action android:name="android.accessibilityservice.AccessibilityService" />
    </intent-filter>
    <meta-data android:name="android.accessibilityservice" android:resource="@xml/accessibilityservice" />
</service>

In your resources (xml folder), create accessibilityservice.xml:

<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
                       android:accessibilityEventTypes="typeNotificationStateChanged"
                       android:accessibilityFeedbackType="feedbackAllMask"
                       android:notificationTimeout="100" />

Upvotes: -3

Related Questions