Manifest & Permissions

Accessibility Service Permission: Declaration, User Control and Policy

An Android accessibility service is enabled through an explicit user-controlled settings flow. Declaring BIND_ACCESSIBILITY_SERVICE is part of protecting the service binding; it is not an ordinary permission that the app can request through a standard runtime dialog.

By Updated 2 min read

Declare the service contract correctly

The accessibility-service documentation describes a service declaration, the accessibility-service intent filter and metadata pointing to its configuration. Request only the event types and capabilities the feature needs.

A service that can inspect interface content has a sensitive position. Treat the configuration as a data-access contract, not a convenient way to automate unrelated tasks.

Explain the actual feature

Tell the user what the service does, what information it can observe and why it is needed. Do not disguise the settings screen as a harmless performance option. If the service is not enabled, keep unrelated app features usable and show an honest status.

State Expected behavior
Service disabled Explain the unavailable feature without repeated redirects
User enables it Confirm the real enabled state
User later disables it Stop relying on the service and update the UI
Device restricts enabling Respect the restriction and provide supported guidance

Review Play policy separately

Google Play's permissions policy includes requirements for Accessibility API use, declarations and disclosures. Technical access does not establish policy eligibility. An app's description and actual behavior must agree about whether it is an accessibility tool and how the API is used.

Do not use the service to bypass user choices, manipulate other apps deceptively or obtain unrelated sensitive information.

Test event handling and data minimization

Exercise only the events needed by your feature. Avoid retaining raw screen content in logs or analytics. Test configuration changes, disabled service state and app updates so stale assumptions do not produce crashes or silent collection.

Inspect the packaged declaration

APKLint's Manifest Checker can help verify the service and metadata structure. It cannot prove that the service's runtime behavior is appropriate, that the user understood the disclosure or that Google Play will accept the use case. Preserve a feature-level rationale and current policy review with the release.

Sources and further reading

  1. Android Developers: Create an accessibility service
  2. Google Play: Permissions and APIs that access sensitive information

Reference review: 22 September 2026. Examples illustrate the workflow; check your installed versions, release artifact and account-specific Console requirements before applying them. This guide is not a claim that APKLint executed your project or verified your private account.

APKLint

Android inspection tools and practical release guides. About APKLint · Report a correction