Skip to content
WM KeyboardWM Keyboard
Accessibility

Permissions

Every permission the keyboard can ask for, which feature wants it, and what happens if you say no.

A fresh install asks for nothing. Every permission on this page belongs to exactly one optional feature, and none of them is requested until the first time you actually use that feature. Typing, prediction, autocorrect, gesture typing, emoji search and learning need no permission at all, so a keyboard you never point at a tool never sees a single prompt.

Before Android’s own permission dialog appears, the keyboard shows its own: what it’s about to ask for, which feature wants it, what happens to the data, and whether any of it leaves the phone. Two buttons, Continue and Not now.

Not now is a real answer. It closes the dialog without asking Android for anything, and the feature stays in whatever state it was in: a tool that needs the permission keeps showing its “needs permission” panel, and a setting that needs one stays off. Nothing is silently enabled behind the dialog, and dismissing it with Back or a tap outside counts the same as Not now.

The same explanation appears whichever direction you came from, so the microphone text is identical whether you reached it from the voice panel on the keyboard or from a settings screen.

These are the ones that produce a system prompt the first time.

PermissionFeature that wants itWhat it does with it
MicrophoneVoice inputRecords only while you’re dictating. Audio goes to the speech recognizer picked in your Android settings, which on most phones is Google’s and may process it in the cloud. An offline Whisper model Full edition only keeps it on the phone. Nothing is stored either way.
CameraCamera tool, OCR and QR scanning Full edition onlyOpens the camera only while that panel is on screen. Photos land in the app’s private storage and go to the app you’re typing in when you insert one.
ContactsContact name and email suggestionsReads names and addresses into memory so they complete as you type, and so autocorrect stops “fixing” them. Never written to disk, never sent anywhere.
CalendarCalendar toolReads your events so the tool can list them and insert one as text. Read-only, only while the tool is open.
PhotosScreenshots in the clipboardSpots newly taken screenshots so they turn up in the clipboard ready to insert. Android has no screenshots-only permission, so granting it opens your photo library as a whole even though the keyboard only ever looks at new screenshots.
StorageSave an image to your galleryAndroid 9 and older only. Newer versions let an app write its own media with no permission, so nothing is asked for there.

Three more are granted at install with no prompt, because Android doesn’t consider them sensitive: vibration (for haptics), internet, and the “is this connection metered?” check the model downloaders use before pulling hundreds of megabytes. What the internet permission is actually used for, tool by tool, is on Network policy.

Refuse the same permission twice and Android stops showing that prompt entirely. It doesn’t tell the app, and it doesn’t tell you: the next tap just returns “denied” with nothing on screen, which normally leaves you tapping a button that appears to do nothing.

The keyboard checks for that case and changes what the button does. You get the same explanation as before, plus a line saying Android has stopped asking, and the button becomes Open settings, which drops you on the app’s own permission page where the choice still lives. Grant it there and the feature works the next time you open it.

One rough edge worth knowing: if you granted a permission and later revoked it from that same settings page, the keyboard will send you back to Settings rather than showing the prompt, even though the prompt would have worked. It errs toward the screen that always works over the one that might silently do nothing.

Notification access, usage access and the accessibility service aren’t permissions Android will prompt for. Each is a switch on a system Settings screen, and all the app can do is take you there. The keyboard shows the same kind of explanation first, for the same reason, and each of these three is off until you turn it on yourself.

The system screens for all three carry broad, alarming warnings, because the categories are genuinely powerful. What this app actually uses is much narrower:

AccessFeatureWhat the keyboard uses it for
Notification accessMedia controls and the one-time code chipAndroid only hands the play/pause/skip controls of the current media session to apps holding this. For media the listener reads nothing at all: no notification, title, sender or content. It exists purely so the platform will surface the session. The code chip is the one thing that ever reads notification text, only while you’ve turned it on, and only to find a verification code. Nothing is stored and nothing leaves the phone either way.
Usage access“Show source app” on clipboard entriesReads which app was in front at the moment you copied something, so the clip can show where it came from. Not your history, not time spent anywhere. Kept with the clip, on this device.
Accessibility serviceKeyboard gestures under a screen readerMarks the key grid as bypassing TalkBack’s touch handling, which is the only way an app can keep its own gestures there. It subscribes to no accessibility events, can’t read window content, and covers nothing outside the keys. See Screen readers.

All three are revoked the same way they were granted, from the relevant system Settings screen, and the features fall back cleanly: media controls show their “needs access” panel, clips are saved with no source app, and the gestures mode behaves like Explore by touch.

WM KeyboardPrivacyPermissions

The app has a permissions screen of its own, at the top of Privacy. It’s an inventory rather than a funnel: every permission the keyboard can hold, in three groups (the ones Android prompts for, the three special-access grants, and the three that come with the install), each row showing Granted, Not granted or Automatic on the right.

Tapping a row you haven’t granted runs the same explanation-then-prompt flow the feature itself would, so this is the one place you can grant something ahead of the feature that wants it. Tapping a row that’s already granted opens the app’s own page in Android’s Settings, since that’s the only place a grant can be taken back. Field by field, it’s on Permissions settings.

Nothing stops you going to Android’s page directly instead: Settings → Apps → WM Keyboard → Permissions. Notification access, usage access and accessibility each sit on their own system screen rather than in that list, which is why the in-app screen keeps them in a group of their own.

  • Revoking a permission never breaks the keyboard. Every feature behind one is optional and checks at the moment it’s used, so a revoked permission turns that one panel back into its “needs permission” state and leaves everything else alone. Typing is never affected.
  • Two dictionary permissions are declared but do nothing on any current phone. The app lists READ_USER_DICTIONARY and WRITE_USER_DICTIONARY for the “Add words to the system dictionary” setting described on Your data on device. Since Android 6, the system grants the active keyboard access to that provider without a permission, so these are inert on anything modern and only matter on much older releases.
  • Reading your SIM’s country isn’t a permission either. The Suggested for you group on the Languages screens asks Android for the SIM’s and the network’s country code (getSimCountryIso and getNetworkCountryIso), which any app may do without asking, alongside your phone’s system language list. Both are used only to order that list, both are read on the spot rather than stored, and neither leaves the device. Nothing else about the SIM — number, carrier account, IMEI, or anything identifying — is touched, and a phone with no SIM simply falls back to the region on its locale. See Suggested languages.
  • Listing your installed apps isn’t a permission. The keyboard-mode editor can bind a mode to specific apps, and app names can be offered as suggestions, both of which need to see the list of launcher activities. Android 11 and later hide that list unless an app declares which kinds of apps it wants to see, which this app does narrowly (launcher activities, plus mail apps for the bug-report row). It doesn’t use the blanket “query all packages” permission.
  • The camera permission covers the scanners, but the document scanner is Google’s own screen. OCR and QR scanning Full edition only run in a keyboard panel and use the permission above. Document scanning hands off to the full-screen scanner supplied by Google Play services, which manages its own camera access and returns the pages when it’s done.
  • Nothing here is asked for on behalf of a third party. No permission on this page is requested by an SDK, an analytics library or an ad network, because the app contains none. See Privacy at a glance for what that claim rests on and how to check it yourself.