AndroidManifest.xml files. You should remove unsupported features from the AndroidManifest. If you’re using product flavors, move the permissions from the main AndroidManifest to the mobile flavor’s manifest, and move source code that relies on these permissions to the mobile build flavor.
| Prohibited Permission |
|---|
ACCEPT_HANDOVER |
ACCESS_BACKGROUND_LOCATION |
ACCESS_CHECKIN_PROPERTIES |
ACCESS_LOCATION_EXTRA_COMMANDS |
ACCESS_NOTIFICATION_POLICY |
ACCOUNT_MANAGER |
ACTIVITY_RECOGNITION |
ADD_VOICEMAIL |
ANSWER_PHONE_CALLS |
BIND_ACCESSIBILITY_SERVICE |
BIND_APPWIDGET |
BIND_AUTOFILL_SERVICE |
BIND_CALL_REDIRECTION_SERVICE |
BIND_CARRIER_MESSAGING_CLIENT_SERVICE |
BIND_CARRIER_MESSAGING_SERVICE |
BIND_CARRIER_SERVICES |
BIND_CHOOSER_TARGET_SERVICE |
BIND_CONDITION_PROVIDER_SERVICE |
BIND_CONTROLS |
BIND_DEVICE_ADMIN |
BIND_DREAM_SERVICE |
BIND_INCALL_SERVICE |
BIND_INPUT_METHOD |
BIND_MIDI_DEVICE_SERVICE |
BIND_NFC_SERVICE |
BIND_NOTIFICATION_LISTENER_SERVICE |
BIND_PRINT_SERVICE |
BIND_QUICK_ACCESS_WALLET_SERVICE |
BIND_QUICK_SETTINGS_TILE |
BIND_REMOTEVIEWS |
BIND_SCREENING_SERVICE |
BIND_TELECOM_CONNECTION_SERVICE |
BIND_TEXT_SERVICE |
BIND_TV_INPUT |
BIND_VISUAL_VOICEMAIL_SERVICE |
BIND_VOICE_INTERACTION |
BIND_VR_LISTENER_SERVICE |
BIND_WALLPAPER |
BLUETOOTH_PRIVILEGED |
BODY_SENSORS |
BROADCAST_PACKAGE_REMOVED |
BROADCAST_SMS |
BROADCAST_WAP_PUSH |
CALL_PHONE |
CALL_PRIVILEGED |
CAPTURE_AUDIO_OUTPUT |
CHANGE_COMPONENT_ENABLED_STATE |
CHANGE_CONFIGURATION |
CLEAR_APP_CACHE |
CONTROL_LOCATION_UPDATES |
DELETE_CACHE_FILES |
DELETE_PACKAGES |
DIAGNOSTIC |
DUMP |
FACTORY_TEST |
GET_ACCOUNTS |
GET_ACCOUNTS_PRIVILEGED |
INSTALL_LOCATION_PROVIDER |
INSTALL_PACKAGES |
INSTANT_APP_FOREGROUND_SERVICE |
LOADER_USAGE_STATS |
LOCATION_HARDWARE |
MANAGE_DOCUMENTS |
MANAGE_MEDIA |
MANAGE_ONGOING_CALLS |
MASTER_CLEAR |
MEDIA_CONTENT_CONTROL |
MODIFY_PHONE_STATE |
MOUNT_FORMAT_FILESYSTEMS |
MOUNT_UNMOUNT_FILESYSTEMS |
PACKAGE_USAGE_STATS |
PROCESS_OUTGOING_CALLS |
QUERY_ALL_PACKAGES |
READ_CALENDAR |
READ_CALL_LOG |
READ_CONTACTS |
READ_INPUT_STATE |
READ_LOGS |
READ_PHONE_NUMBERS |
READ_PHONE_STATE |
READ_PRECISE_PHONE_STATE |
READ_SMS |
READ_VOICEMAIL |
REBOOT |
RECEIVE_MMS |
RECEIVE_SMS |
RECEIVE_WAP_PUSH |
REQUEST_DELETE_PACKAGES |
REQUEST_INSTALL_PACKAGES |
SEND_RESPOND_VIA_MESSAGE |
SEND_SMS |
SET_ALWAYS_FINISH |
SET_ANIMATION_SCALE |
SET_DEBUG_APP |
SET_PROCESS_LIMIT |
SET_TIME |
SET_TIME_ZONE |
SIGNAL_PERSISTENT_PROCESSES |
SMS_FINANCIAL_TRANSACTIONS |
START_FOREGROUND_SERVICES_FROM_BACKGROUND |
START_VIEW_PERMISSION_USAGE |
STATUS_BAR |
SYSTEM_ALERT_WINDOW |
UNINSTALL_SHORTCUT |
UPDATE_DEVICE_STATS |
USB_CAMERA |
USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER |
USE_SIP |
UWB_RANGING |
WRITE_APN_SETTINGS |
WRITE_CALENDAR |
WRITE_CALL_LOG |
WRITE_CONTACTS |
WRITE_GSERVICES |
WRITE_SECURE_SETTINGS |
WRITE_SETTINGS |
WRITE_VOICEMAIL |
| Permissions Requiring Review | Usage Notes |
|---|---|
ACCESS_MEDIA_LOCATION | • Required only if the app needs to read protected Exif data from shared storage media files. • Not required to read or write shared storage media files. See Access media files from shared storage in Android Developer documentation. |
BLUETOOTH_CONNECT, BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE | Permitted only for interoperability with a third-party Bluetooth device that can’t be otherwise paired through the Meta Quest app Bluetooth interface. |
CAMERA | Permitted uses include apps built with Unity that use WebcamTexture. |
CHANGE_WIFI_STATE | Apps should not change device settings. |
HEADSET_CAMERA | Permitted uses include identifying objects the app can interact with. |
MANAGE_EXTERNAL_STORAGE | Permitted uses include file management features. |
MODIFY_AUDIO_SETTINGS | Apps should not change OS-level volume settings. They can implement their own app-level volume controls, which do not require this permission. |
POST_NOTIFICATIONS | Apps should send notifications via the tools on the Engagement > User Notifications tab on the Meta Horizon Developer Dashboard, which do not require this permission. |
READ_EXTERNAL_STORAGE | • Not needed for savegames. Use app-scoped persistent storage. • Not needed for DLC. • Not needed to read shared storage media files or media files created by your app itself. See Access media files from shared storage in Android Developer documentation. |
READ_MEDIA_AUDIO | Access audio files created by other apps. See Granular media permissions in Android Developer documentation. |
READ_MEDIA_IMAGES | Access images and photos created by other apps. See Granular media permissions in Android Developer documentation. |
READ_MEDIA_VIDEO | Access videos created by other apps. See Granular media permissions in Android Developer documentation. |
READ_PHONE_STATE | Apps should not access hardware IDs. |
RECEIVE_BOOT_COMPLETED | |
RECORD_AUDIO | Permitted uses include VOIP or other features that need microphone access. |
AVATAR_CAMERA | Permitted uses include video conferencing. |
WAKE_LOCK | This is managed by the platform. |
WRITE_EXTERNAL_STORAGE | • Not needed for savegames. Use app-scoped persistent storage. • Not needed to use DLC. • Not needed to write shared storage media files. |