Develop
Develop
Select your platform

Unsupported Permissions

Many Android permissions are prohibited, due to being dangerous or unsupported by Quest headsets. Others require manual review during app submission. The Meta Horizon Android Studio plugin will highlight unsupported permissions in 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.
A screenshot of an Android manifest XML file. Permissions not supported by Quest have a squiggly yellow underline. One of the permissions has a tooltip under it saying "This permission is not supported by Meta Horizon OS", and an action saying "Learn More".
An unsupported permission in an AndroidManifest.xml file.

Prohibited permissions

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 which require review

Permissions Requiring ReviewUsage 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.
Did you find this page helpful?