Permissions - ankidroid/Anki-Android GitHub Wiki

Permissions

This page contains a list of the permissions required by AnkiDroid and an explanation of what they are used for.

You can see the most up-to-date list of permission required by AnkiDroid and their description in the Google Play Store:

https://play.google.com/store/apps/details?id=com.ichi2.anki

Photos / Media / Files & Storage

Read the contents of your USB storage & Modify or delete the contents of your USB storage

Allows the app to write to the USB storage. Allows the app to write to the SD card.

android.permission.WRITE_EXTERNAL_STORAGE

AnkiDroid used the SD card of your device to store the decks you are reviewing.

Microphone

Record audio

android.permission.RECORD_AUDIO

This is an optional permission that we request, allowing the "Check Pronunciation" and "Insert Audio" features to work.

Camera

Take pictures and videos

android.permission.CAMERA

This is an optional permission that we request, allowing images to be inserted into flashcards from the camera.

NETWORK COMMUNICATION

VIEW NETWORK STATE

Allows the app to view the state of all networks.

android.permission.ACCESS_NETWORK_STATE

AnkiDroid uses the network state to determine whether you are offline and cannot access the features that require internet access.

Full Network Access

Allows the app to create network sockets.

android.permission.INTERNET

AnkiDroid uses the internet to connect to AnkiWeb and synchronize.

Decks may reference images and media via the internet.

AnkiDroid's opt-in analytics use the internet.

AnkiDroid's opt-in crash reporting uses the internet.

Some of the screens, like Statistics and Deck options, are loaded by accessing a local server using the 127.0.0.1 address

SYSTEM TOOLS

HARDWARE CONTROLS

CONTROL VIBRATOR

Allows the app to control the vibrator.

android.permission.VIBRATE

AnkiDroid makes your phone vibrate when you have cards due.

SYSTEM TOOLS

AUTOMATICALLY START AT BOOT

Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the tablet and allow the app to slow down the overall tablet by always running. Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.

android.permission.RECEIVE_BOOT_COMPLETED

AnkiDroid is started on device boot so that it can check if you have any cards due and let you know via notifications.

Prevent device from sleeping

android.permission.WAKE_LOCK

We prevent the application from sleeping while a sync is occurring. This is used to ensure we do not have timing conflicts with AnkiWeb when the application is resumed and paused.