Google has sent emails warnings to developers to not use Accessibility Services outside of intended use, otherwise their apps will be removed from the Play Store.
Email From Google Play Support on android accessibility permissions
30 Day notification: requirements for use of Accessibility services
Hi Developers ,
We’re contacting you because your app with package name com.xxxx.xxxx is requesting the ‘android.permission.BIND_ACCESSIBILITY_SERVICE.’ Apps requesting accessibility services bshould only be used to help users with disabilities use Android devices and apps. Your app must comply with our Permissions policy and the Prominent Disclosure requirements of our User Data policy.
Action required: If you aren’t already doing so, you must explain to users how your app is using the ‘android.permission.BIND_ACCESSIBILITY_SERVICE’ to help users with disabilities use Android devices and apps. Apps that fail to meet this requirement within 30 days may be removed from Google Play. Alternatively, you can remove any requests for accessibility services within your app. You can also choose to unpublish your app.
If you need to make changes to your apps, please follow these steps:
Read through the Permissions and User Data policies for more details, and make sure your app complies with all policies listed in the Developer Program Policies.
If you don’t need the BIND_ACCESSIBILITY_SERVICE permission in your app or the permission is being used for something other than helping users with disabilities use Android devices and apps:
Remove your request for this permission from your app’s manifest.
Sign in to your Play Console and upload your modified, policy-compliant APK.
Or, if you need the BIND_ACCESSIBILITY_SERVICE permission in your app to help users with disabilities use Android devices and apps:
Include the following snippet in your app’s store listing description: “This app uses Accessibility services.”
Provide prominent user-facing disclosure of this usage before asking the user to enable this permission within your app. Your disclosure must meet each of the following requirements:
Disclosure must be provided via the android:summary and android:description elements of the AccessibilityServiceInfo class
Disclosure must describe the functionality that the Accessibility Service permission is enabling for your app. Each feature used with the Accessibility Service request must be declared in your disclosure with justification.
Alternatively, you can choose to unpublish the app.
All violations are tracked. Serious or repeated violations of any nature will result in the termination of your developer account, and investigation and possible termination of related Google accounts.
If you’ve reviewed the policy and feel we may have been in error, please reach out to our policy support team. One of my colleagues will get back to you within 2 business days.
Regards,
The Google Play Review Team
How To Fix Accessibility service Warning
There two ways of dealing with the problem.
1. Remove the permission from the app and upload new apk to play store
2. If you need the permission, then,
2.1 Go to Google Developers Console and open the app that needs accessibility service. Go to Store listing. Edit store listing and add “This app uses Accessibility services.” text on the bottom.
2.2 Open the source code in Android Studio, Eclipse, Unity etc. And add a user-facing disclosure, a dialogue pop up asking for permission from user. You can use the following text for that.
The app using AccessibilityService needed to have a permission from settings>Accessibility in order to lock apps. Allow permission from settings.
Change lock apps to the required intent of the service like what the function is added for. When user clicks ok we have to take him to settings page.
Android Accessibility Permissions
Accessibility Services Permission Pop up |
3. You need add android summary and android description inside the source code.
Android Summary For Accessibility Service Android Example
Here are the Android summary [Brief summary of the accessibility service purpose or behavior] statements.
- android:accessibilityEventTypes The event types this service would like to receive as specified in AccessibilityEvent.
- android:accessibilityFeedbackType The feedback types this service provides as specified in AccessibilityServiceInfo.
- android:accessibilityFlags Additional flags as specified in AccessibilityServiceInfo.
- android:canRequestEnhancedWebAccessibility Attribute whether the accessibility service wants to be able to request enhanced web accessibility enhancements.
- android:canRequestFilterKeyEvents Attribute whether the accessibility service wants to be able to request to filter key events.
- android:canRequestTouchExplorationMode Attribute whether the accessibility service wants to be able to request touch exploration mode in which touched items are spoken aloud and the UI can be explored via gestures.
- android:canRetrieveWindowContent Attribute whether the accessibility service wants to be able to retrieve the active window content.
- android:description Short description of the accessibility service purpose or behavior.
- android:notificationTimeout The minimal period in milliseconds between two accessibility events of the same type are sent to this service.
- android:packageNames Comma separated package names from which this service would like to receive events (leave out for all packages).
- android:settingsActivity Component name of an activity that allows the user to modify the settings for this service.
- android:summary Brief summary of the accessibility service purpose or behavior.
Android Accessibility Service Description
<service
android:name=”.service.AppStopperService”
android:enabled=”false”
android:label=”@string/app_name”
android:permission=”android.permission.BIND_ACCESSIBILITY_SERVICE”>
<intent-filter>
<action android:name=”android.accessibilityservice.AccessibilityService” />
</intent-filter>
To Add android:descripion for ACCESSIBILITY_SERVICE
<service
android:name=”.service.AppStopperService”
android:enabled=”false”
android:label=”@string/app_name”
android:description=”@string/android_description”
android:permission=”android.permission.BIND_ACCESSIBILITY_SERVICE”>
<intent-filter>
<action android:name=”android.accessibilityservice.AccessibilityService” />
</intent-filter>
Google Accessibility Statement or Warning to Developers
Update on emails on Accessibility warnings to android developers
Yesterday I talked to an employee of Google about the emails on Accessibility warnings to android developers. He clearly mentioned that Google will remove apps that use accessibility service for any other purpose other than using it for people with disability. This is because Google has discovered some key issues where some publishers use accessibility services to get access to the devices of users.
It is recommended to remove accessibility service from apps. There is no way to bypass the accessibility service currently. Therefore there are talks that Google will bring a new API for such services to help publishers that gets hurt by this decision. Many app lockers apps, spotify, UC browser got affected by this accessibility permission warning from Google. Google will not suspend your developer account but may remove the app from Play store and disable ad serving. It is better for app developers to remove the accessibility permissions from apps or unpublish apps. Google has give November 30, 2017 as the last date to do necessary changes for publishers.
Check video on how to unpublish app from playstore
Queries From Readers
Question: I found this article of yours very helpful , but I am unclear on one of statements
stating “The app using AccessibilityService needed to have a permission from settings>Accessibility in order to lock apps. Allow permission from settings. Change lock apps to the required intent of the service like what the function is added for. When user clicks OK we have to take him to Settings page.”
If you intend to state we need accessibility service to pass an intent to take user to Settings page, then it can be done without having an accessibility service as well. If that’s not what you meant can you please clarify the same.
Answer: As per Google, the developer has to ask permission from user to use the accessibility service in the normal course of usage. The permission request should contain the function and the result of the function. Accessibility is the function and locking apps is the intent. That is why I gave an example of what kind of statement can be used for this. If you do need accessibility permission, no need to do these measures.