# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Constants | Ctors | Inherited Methods

# Manifest.permission

`public static final class Manifest.permission`
`extends Object` ``

java.lang.Object
↳ | android.Manifest.permission

## Summary

### Constants
`String` | `ACCEPT_HANDOVER` Allows a calling app to continue a call which was started in another app.
`String` | `ACCESS_BACKGROUND_LOCATION` Allows an app to access location in the background.
`String` | `ACCESS_BLOBS_ACROSS_USERS` Allows an application to access data blobs across users.
`String` | `ACCESS_CHECKIN_PROPERTIES` Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded.
`String` | `ACCESS_COARSE_LOCATION` Allows an app to access approximate location.
`String` | `ACCESS_FINE_LOCATION` Allows an app to access precise location.
`String` | `ACCESS_LOCATION_EXTRA_COMMANDS` Allows an application to access extra location provider commands.
`String` | `ACCESS_MEDIA_LOCATION` Allows an application to access any geographic locations persisted in the user's shared collection.
`String` | `ACCESS_NETWORK_STATE` Allows applications to access information about networks.
`String` | `ACCESS_NOTIFICATION_POLICY` Marker permission for applications that wish to access notification policy.
`String` | `ACCESS_WIFI_STATE` Allows applications to access information about Wi-Fi networks.
`String` | `ACCOUNT_MANAGER` Allows applications to call into AccountAuthenticators.
`String` | `ACTIVITY_RECOGNITION` Allows an application to recognize physical activity.
`String` | `ADD_VOICEMAIL` Allows an application to add voicemails into the system.
`String` | `ANSWER_PHONE_CALLS` Allows the app to answer an incoming phone call.
`String` | `BATTERY_STATS` Allows an application to collect battery statistics Protection level: signature|privileged|development
`String` | `BIND_ACCESSIBILITY_SERVICE` Must be required by an `AccessibilityService`, to ensure that only the system can bind to it.
`String` | `BIND_APPWIDGET` Allows an application to tell the AppWidget service which application can access AppWidget's data.
`String` | `BIND_AUTOFILL_SERVICE` Must be required by a `AutofillService`, to ensure that only the system can bind to it.
`String` | `BIND_CALL_REDIRECTION_SERVICE` Must be required by a `CallRedirectionService`, to ensure that only the system can bind to it.
`String` | `BIND_CARRIER_MESSAGING_CLIENT_SERVICE` A subclass of `CarrierMessagingClientService` must be protected with this permission.
`String` | `BIND_CARRIER_MESSAGING_SERVICE` This constant is deprecated. Use `BIND_CARRIER_SERVICES` instead
`String` | `BIND_CARRIER_SERVICES` The system process that is allowed to bind to services in carrier apps will have this permission.
`String` | `BIND_CHOOSER_TARGET_SERVICE` This constant is deprecated. For publishing direct share targets, please follow the instructions in https://developer.android.com/training/sharing/receive.html#providing-direct-share-targets instead.
`String` | `BIND_COMPANION_DEVICE_SERVICE` Must be required by any `CompanionDeviceService`s to ensure that only the system can bind to it.
`String` | `BIND_CONDITION_PROVIDER_SERVICE` Must be required by a `ConditionProviderService`, to ensure that only the system can bind to it.
`String` | `BIND_CONTROLS` Allows SystemUI to request third party controls.
`String` | `BIND_DEVICE_ADMIN` Must be required by device administration receiver, to ensure that only the system can interact with it.
`String` | `BIND_DREAM_SERVICE` Must be required by an `DreamService`, to ensure that only the system can bind to it.
`String` | `BIND_INCALL_SERVICE` Must be required by a `InCallService`, to ensure that only the system can bind to it.
`String` | `BIND_INPUT_METHOD` Must be required by an `InputMethodService`, to ensure that only the system can bind to it.
`String` | `BIND_MIDI_DEVICE_SERVICE` Must be required by an `MidiDeviceService`, to ensure that only the system can bind to it.
`String` | `BIND_NFC_SERVICE` Must be required by a `HostApduService` or `OffHostApduService` to ensure that only the system can bind to it.
`String` | `BIND_NOTIFICATION_LISTENER_SERVICE` Must be required by an `NotificationListenerService`, to ensure that only the system can bind to it.
`String` | `BIND_PRINT_SERVICE` Must be required by a `PrintService`, to ensure that only the system can bind to it.
`String` | `BIND_QUICK_ACCESS_WALLET_SERVICE` Must be required by a `QuickAccessWalletService` to ensure that only the system can bind to it.
`String` | `BIND_QUICK_SETTINGS_TILE` Allows an application to bind to third party quick settings tiles.
`String` | `BIND_REMOTEVIEWS` Must be required by a `RemoteViewsService`, to ensure that only the system can bind to it.
`String` | `BIND_SCREENING_SERVICE` Must be required by a `CallScreeningService`, to ensure that only the system can bind to it.
`String` | `BIND_TELECOM_CONNECTION_SERVICE` Must be required by a `ConnectionService`, to ensure that only the system can bind to it.
`String` | `BIND_TEXT_SERVICE` Must be required by a TextService (e.g. SpellCheckerService) to ensure that only the system can bind to it.
`String` | `BIND_TV_INPUT` Must be required by a `TvInputService` to ensure that only the system can bind to it.
`String` | `BIND_VISUAL_VOICEMAIL_SERVICE` Must be required by a link `VisualVoicemailService` to ensure that only the system can bind to it.
`String` | `BIND_VOICE_INTERACTION` Must be required by a `VoiceInteractionService`, to ensure that only the system can bind to it.
`String` | `BIND_VPN_SERVICE` Must be required by a `VpnService`, to ensure that only the system can bind to it.
`String` | `BIND_VR_LISTENER_SERVICE` Must be required by an `VrListenerService`, to ensure that only the system can bind to it.
`String` | `BIND_WALLPAPER` Must be required by a `WallpaperService`, to ensure that only the system can bind to it.
`String` | `BLUETOOTH` Allows applications to connect to paired bluetooth devices.
`String` | `BLUETOOTH_ADMIN` Allows applications to discover and pair bluetooth devices.
`String` | `BLUETOOTH_ADVERTISE` Required to be able to advertise to nearby Bluetooth devices.
`String` | `BLUETOOTH_CONNECT` Required to be able to connect to paired Bluetooth devices.
`String` | `BLUETOOTH_PRIVILEGED` Allows applications to pair bluetooth devices without user interaction, and to allow or disallow phonebook access or message access.
`String` | `BLUETOOTH_SCAN` Required to be able to discover and pair nearby Bluetooth devices.
`String` | `BODY_SENSORS` Allows an application to access data from sensors that the user uses to measure what is happening inside their body, such as heart rate.
`String` | `BROADCAST_PACKAGE_REMOVED` Allows an application to broadcast a notification that an application package has been removed.
`String` | `BROADCAST_SMS` Allows an application to broadcast an SMS receipt notification.
`String` | `BROADCAST_STICKY` Allows an application to broadcast sticky intents.
`String` | `BROADCAST_WAP_PUSH` Allows an application to broadcast a WAP PUSH receipt notification.
`String` | `CALL_COMPANION_APP` Allows an app which implements the `InCallService` API to be eligible to be enabled as a calling companion app.
`String` | `CALL_PHONE` Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call.
`String` | `CALL_PRIVILEGED` Allows an application to call any phone number, including emergency numbers, without going through the Dialer user interface for the user to confirm the call being placed.
`String` | `CAMERA` Required to be able to access the camera device.
`String` | `CAPTURE_AUDIO_OUTPUT` Allows an application to capture audio output.
`String` | `CHANGE_COMPONENT_ENABLED_STATE` Allows an application to change whether an application component (other than its own) is enabled or not.
`String` | `CHANGE_CONFIGURATION` Allows an application to modify the current configuration, such as locale.
`String` | `CHANGE_NETWORK_STATE` Allows applications to change network connectivity state.
`String` | `CHANGE_WIFI_MULTICAST_STATE` Allows applications to enter Wi-Fi Multicast mode.
`String` | `CHANGE_WIFI_STATE` Allows applications to change Wi-Fi connectivity state.
`String` | `CLEAR_APP_CACHE` Allows an application to clear the caches of all installed applications on the device.
`String` | `CONTROL_LOCATION_UPDATES` Allows enabling/disabling location update notifications from the radio.
`String` | `DELETE_CACHE_FILES` Old permission for deleting an app's cache files, no longer used, but signals for us to quietly ignore calls instead of throwing an exception.
`String` | `DELETE_PACKAGES` Allows an application to delete packages.
`String` | `DIAGNOSTIC` Allows applications to RW to diagnostic resources.
`String` | `DISABLE_KEYGUARD` Allows applications to disable the keyguard if it is not secure.
`String` | `DUMP` Allows an application to retrieve state dump information from system services.
`String` | `EXPAND_STATUS_BAR` Allows an application to expand or collapse the status bar.
`String` | `FACTORY_TEST` Run as a manufacturer test application, running as the root user.
`String` | `FOREGROUND_SERVICE` Allows a regular application to use `Service.startForeground`.
`String` | `GET_ACCOUNTS` Allows access to the list of accounts in the Accounts Service.
`String` | `GET_ACCOUNTS_PRIVILEGED` Allows access to the list of accounts in the Accounts Service.
`String` | `GET_PACKAGE_SIZE` Allows an application to find out the space used by any package.
`String` | `GET_TASKS` This constant is deprecated. No longer enforced.
`String` | `GLOBAL_SEARCH` This permission can be used on content providers to allow the global search system to access their data.
`String` | `HIDE_OVERLAY_WINDOWS` Allows an app to prevent non-system-overlay windows from being drawn on top of it
`String` | `HIGH_SAMPLING_RATE_SENSORS` Allows an app to access sensor data with a sampling rate greater than 200 Hz.
`String` | `INSTALL_LOCATION_PROVIDER` Allows an application to install a location provider into the Location Manager.
`String` | `INSTALL_PACKAGES` Allows an application to install packages.
`String` | `INSTALL_SHORTCUT` Allows an application to install a shortcut in Launcher.
`String` | `INSTANT_APP_FOREGROUND_SERVICE` Allows an instant app to create foreground services.
`String` | `INTERACT_ACROSS_PROFILES` Allows interaction across profiles in the same profile group.
`String` | `INTERNET` Allows applications to open network sockets.
`String` | `KILL_BACKGROUND_PROCESSES` Allows an application to call `ActivityManager.killBackgroundProcesses(String)`.
`String` | `LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK` An application needs this permission for `Settings.ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITY` to show its `Activity` embedded in Settings app.
`String` | `LOADER_USAGE_STATS` Allows a data loader to read a package's access logs.
`String` | `LOCATION_HARDWARE` Allows an application to use location features in hardware, such as the geofencing api.
`String` | `MANAGE_DOCUMENTS` Allows an application to manage access to documents, usually as part of a document picker.
`String` | `MANAGE_EXTERNAL_STORAGE` Allows an application a broad access to external storage in scoped storage.
`String` | `MANAGE_MEDIA` Allows an application to modify and delete media files on this device or any connected storage device without user confirmation.
`String` | `MANAGE_ONGOING_CALLS` Allows to query ongoing call details and manage ongoing calls Protection level: signature|appop
`String` | `MANAGE_OWN_CALLS` Allows a calling application which manages its own calls through the self-managed `ConnectionService` APIs.
`String` | `MASTER_CLEAR` Not for use by third-party applications.
`String` | `MEDIA_CONTENT_CONTROL` Allows an application to know what content is playing and control its playback.
`String` | `MODIFY_AUDIO_SETTINGS` Allows an application to modify global audio settings.
`String` | `MODIFY_PHONE_STATE` Allows modification of the telephony state - power on, mmi, etc.
`String` | `MOUNT_FORMAT_FILESYSTEMS` Allows formatting file systems for removable storage.
`String` | `MOUNT_UNMOUNT_FILESYSTEMS` Allows mounting and unmounting file systems for removable storage.
`String` | `NFC` Allows applications to perform I/O operations over NFC.
`String` | `NFC_PREFERRED_PAYMENT_INFO` Allows applications to receive NFC preferred payment service information.
`String` | `NFC_TRANSACTION_EVENT` Allows applications to receive NFC transaction events.
`String` | `PACKAGE_USAGE_STATS` Allows an application to collect component usage statistics Declaring the permission implies intention to use the API and the user of the device can grant permission through the Settings application.
`String` | `PERSISTENT_ACTIVITY` This constant is deprecated. This functionality will be removed in the future; please do not use. Allow an application to make its activities persistent.
`String` | `PROCESS_OUTGOING_CALLS` This constant is deprecated. Applications should use `CallRedirectionService` instead of the `Intent.ACTION_NEW_OUTGOING_CALL` broadcast.
`String` | `QUERY_ALL_PACKAGES` Allows query of any normal app on the device, regardless of manifest declarations.
`String` | `READ_CALENDAR` Allows an application to read the user's calendar data.
`String` | `READ_CALL_LOG` Allows an application to read the user's call log.
`String` | `READ_CONTACTS` Allows an application to read the user's contacts data.
`String` | `READ_EXTERNAL_STORAGE` Allows an application to read from external storage.
`String` | `READ_INPUT_STATE` This constant is deprecated. The API that used this permission has been removed.
`String` | `READ_LOGS` Allows an application to read the low-level system log files.
`String` | `READ_PHONE_NUMBERS` Allows read access to the device's phone number(s).
`String` | `READ_PHONE_STATE` Allows read only access to phone state, including the current cellular network information, the status of any ongoing calls, and a list of any `PhoneAccount`s registered on the device.
`String` | `READ_PRECISE_PHONE_STATE` Allows read only access to precise phone state.
`String` | `READ_SMS` Allows an application to read SMS messages.
`String` | `READ_SYNC_SETTINGS` Allows applications to read the sync settings.
`String` | `READ_SYNC_STATS` Allows applications to read the sync stats.
`String` | `READ_VOICEMAIL` Allows an application to read voicemails in the system.
`String` | `REBOOT` Required to be able to reboot the device.
`String` | `RECEIVE_BOOT_COMPLETED` Allows an application to receive the `Intent.ACTION_BOOT_COMPLETED` that is broadcast after the system finishes booting.
`String` | `RECEIVE_MMS` Allows an application to monitor incoming MMS messages.
`String` | `RECEIVE_SMS` Allows an application to receive SMS messages.
`String` | `RECEIVE_WAP_PUSH` Allows an application to receive WAP push messages.
`String` | `RECORD_AUDIO` Allows an application to record audio.
`String` | `REORDER_TASKS` Allows an application to change the Z-order of tasks.
`String` | `REQUEST_COMPANION_PROFILE_WATCH` Allows app to request to be associated with a device via `CompanionDeviceManager` as a "watch" Protection level: normal
`String` | `REQUEST_COMPANION_RUN_IN_BACKGROUND` Allows a companion app to run in the background.
`String` | `REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND` Allows a companion app to start a foreground service from the background.
`String` | `REQUEST_COMPANION_USE_DATA_IN_BACKGROUND` Allows a companion app to use data in the background.
`String` | `REQUEST_DELETE_PACKAGES` Allows an application to request deleting packages.
`String` | `REQUEST_IGNORE_BATTERY_OPTIMIZATIONS` Permission an application must hold in order to use `Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS`.
`String` | `REQUEST_INSTALL_PACKAGES` Allows an application to request installing packages.
`String` | `REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE` Allows an application to subscribe to notifications about the presence status change of their associated companion device
`String` | `REQUEST_PASSWORD_COMPLEXITY` Allows an application to request the screen lock complexity and prompt users to update the screen lock to a certain complexity level.
`String` | `RESTART_PACKAGES` This constant is deprecated. The `ActivityManager.restartPackage(String)` API is no longer supported.
`String` | `SCHEDULE_EXACT_ALARM` Allows applications to use exact alarm APIs.
`String` | `SEND_RESPOND_VIA_MESSAGE` Allows an application (Phone) to send a request to other applications to handle the respond-via-message action during incoming calls.
`String` | `SEND_SMS` Allows an application to send SMS messages.
`String` | `SET_ALARM` Allows an application to broadcast an Intent to set an alarm for the user.
`String` | `SET_ALWAYS_FINISH` Allows an application to control whether activities are immediately finished when put in the background.
`String` | `SET_ANIMATION_SCALE` Modify the global animation scaling factor.
`String` | `SET_DEBUG_APP` Configure an application for debugging.
`String` | `SET_PREFERRED_APPLICATIONS` This constant is deprecated. No longer useful, see `PackageManager.addPackageToPreferred(String)` for details.
`String` | `SET_PROCESS_LIMIT` Allows an application to set the maximum number of (not needed) application processes that can be running.
`String` | `SET_TIME` Allows applications to set the system time directly.
`String` | `SET_TIME_ZONE` Allows applications to set the system time zone directly.
`String` | `SET_WALLPAPER` Allows applications to set the wallpaper.
`String` | `SET_WALLPAPER_HINTS` Allows applications to set the wallpaper hints.
`String` | `SIGNAL_PERSISTENT_PROCESSES` Allow an application to request that a signal be sent to all persistent processes.
`String` | `SMS_FINANCIAL_TRANSACTIONS` This constant is deprecated. The API that used this permission is no longer functional.
`String` | `START_FOREGROUND_SERVICES_FROM_BACKGROUND` Allows an application to start foreground services from the background at any time.
`String` | `START_VIEW_PERMISSION_USAGE` Allows the holder to start the permission usage screen for an app.
`String` | `STATUS_BAR` Allows an application to open, close, or disable the status bar and its icons.
`String` | `SYSTEM_ALERT_WINDOW` Allows an app to create windows using the type `WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY`, shown on top of all other apps.
`String` | `TRANSMIT_IR` Allows using the device's IR transmitter, if available.
`String` | `UNINSTALL_SHORTCUT` Don't use this permission in your app.
`String` | `UPDATE_DEVICE_STATS` Allows an application to update device statistics.
`String` | `UPDATE_PACKAGES_WITHOUT_USER_ACTION` Allows an application to indicate via `PackageInstaller.SessionParams.setRequireUserAction(int)` that user action should not be required for an app update.
`String` | `USE_BIOMETRIC` Allows an app to use device supported biometric modalities.
`String` | `USE_FINGERPRINT` This constant is deprecated. Applications should request `USE_BIOMETRIC` instead
`String` | `USE_FULL_SCREEN_INTENT` Required for apps targeting `Build.VERSION_CODES.Q` that want to use `notification full screen intents`.
`String` | `USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER` Allows to read device identifiers and use ICC based authentication like EAP-AKA.
`String` | `USE_SIP` Allows an application to use SIP service.
`String` | `UWB_RANGING` Required to be able to range to devices using ultra-wideband.
`String` | `VIBRATE` Allows access to the vibrator.
`String` | `WAKE_LOCK` Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming.
`String` | `WRITE_APN_SETTINGS` Allows applications to write the apn settings and read sensitive fields of an existing apn settings like user and password.
`String` | `WRITE_CALENDAR` Allows an application to write the user's calendar data.
`String` | `WRITE_CALL_LOG` Allows an application to write (but not read) the user's call log data.
`String` | `WRITE_CONTACTS` Allows an application to write the user's contacts data.
`String` | `WRITE_EXTERNAL_STORAGE` Allows an application to write to external storage.
`String` | `WRITE_GSERVICES` Allows an application to modify the Google service map.
`String` | `WRITE_SECURE_SETTINGS` Allows an application to read or write the secure system settings.
`String` | `WRITE_SETTINGS` Allows an application to read or write the system settings.
`String` | `WRITE_SYNC_SETTINGS` Allows applications to write the sync settings.
`String` | `WRITE_VOICEMAIL` Allows an application to modify and remove existing voicemails in the system.

### Public constructors
`permission()`

### Inherited methods
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.

## Constants

### ACCEPT_HANDOVER

    public static final String ACCEPT_HANDOVER

Allows a calling app to continue a call which was started in another app. An example is a video calling app that wants to continue a voice call on the user's mobile network.

When the handover of a call from one app to another takes place, there are two devices which are involved in the handover; the initiating and receiving devices. The initiating device is where the request to handover the call was started, and the receiving device is where the handover request is confirmed by the other party.

This permission protects access to the `TelecomManager.acceptHandover(Uri, int, PhoneAccountHandle)` which the receiving side of the handover uses to accept a handover.

Protection level: dangerous

Constant Value: "android.permission.ACCEPT_HANDOVER"

### ACCESS_BACKGROUND_LOCATION

    public static final String ACCESS_BACKGROUND_LOCATION

Allows an app to access location in the background. If you're requesting this permission, you must also request either `ACCESS_COARSE_LOCATION` or `ACCESS_FINE_LOCATION`. Requesting this permission by itself doesn't give you location access.

Protection level: dangerous

This is a hard restricted permission which cannot be held by an app until the installer on record whitelists the permission. For more details see `PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)`.

Constant Value: "android.permission.ACCESS_BACKGROUND_LOCATION"

### ACCESS_BLOBS_ACROSS_USERS

    public static final String ACCESS_BLOBS_ACROSS_USERS

Allows an application to access data blobs across users.

Constant Value: "android.permission.ACCESS_BLOBS_ACROSS_USERS"

### ACCESS_CHECKIN_PROPERTIES

    public static final String ACCESS_CHECKIN_PROPERTIES

Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded.

Not for use by third-party applications.

Constant Value: "android.permission.ACCESS_CHECKIN_PROPERTIES"

### ACCESS_COARSE_LOCATION

    public static final String ACCESS_COARSE_LOCATION

Allows an app to access approximate location. Alternatively, you might want `ACCESS_FINE_LOCATION`.

Protection level: dangerous

Constant Value: "android.permission.ACCESS_COARSE_LOCATION"

### ACCESS_FINE_LOCATION

    public static final String ACCESS_FINE_LOCATION

Allows an app to access precise location. Alternatively, you might want `ACCESS_COARSE_LOCATION`.

Protection level: dangerous

Constant Value: "android.permission.ACCESS_FINE_LOCATION"

### ACCESS_LOCATION_EXTRA_COMMANDS

    public static final String ACCESS_LOCATION_EXTRA_COMMANDS

Allows an application to access extra location provider commands.

Protection level: normal

Constant Value: "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"

### ACCESS_MEDIA_LOCATION

    public static final String ACCESS_MEDIA_LOCATION

Allows an application to access any geographic locations persisted in the user's shared collection.

Protection level: dangerous

Constant Value: "android.permission.ACCESS_MEDIA_LOCATION"

### ACCESS_NETWORK_STATE

    public static final String ACCESS_NETWORK_STATE

Allows applications to access information about networks.

Protection level: normal

Constant Value: "android.permission.ACCESS_NETWORK_STATE"

### ACCESS_NOTIFICATION_POLICY

    public static final String ACCESS_NOTIFICATION_POLICY

Marker permission for applications that wish to access notification policy. This permission is not supported on managed profiles.

Protection level: normal

Constant Value: "android.permission.ACCESS_NOTIFICATION_POLICY"

### ACCESS_WIFI_STATE

    public static final String ACCESS_WIFI_STATE

Allows applications to access information about Wi-Fi networks.

Protection level: normal

Constant Value: "android.permission.ACCESS_WIFI_STATE"

### ACCOUNT_MANAGER

    public static final String ACCOUNT_MANAGER

Allows applications to call into AccountAuthenticators.

Not for use by third-party applications.

Constant Value: "android.permission.ACCOUNT_MANAGER"

### ACTIVITY_RECOGNITION

    public static final String ACTIVITY_RECOGNITION

Allows an application to recognize physical activity.

Protection level: dangerous

Constant Value: "android.permission.ACTIVITY_RECOGNITION"

### ADD_VOICEMAIL

    public static final String ADD_VOICEMAIL

Allows an application to add voicemails into the system.

Protection level: dangerous

Constant Value: "com.android.voicemail.permission.ADD_VOICEMAIL"

### ANSWER_PHONE_CALLS

    public static final String ANSWER_PHONE_CALLS

Allows the app to answer an incoming phone call.

Protection level: dangerous

Constant Value: "android.permission.ANSWER_PHONE_CALLS"

### BATTERY_STATS

    public static final String BATTERY_STATS

Allows an application to collect battery statistics

Protection level: signature|privileged|development

Constant Value: "android.permission.BATTERY_STATS"

### BIND_ACCESSIBILITY_SERVICE

    public static final String BIND_ACCESSIBILITY_SERVICE

Must be required by an `AccessibilityService`, to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_ACCESSIBILITY_SERVICE"

### BIND_APPWIDGET

    public static final String BIND_APPWIDGET

Allows an application to tell the AppWidget service which application can access AppWidget's data. The normal user flow is that a user picks an AppWidget to go into a particular host, thereby giving that host application access to the private data from the AppWidget app. An application that has this permission should honor that contract.

Not for use by third-party applications.

Constant Value: "android.permission.BIND_APPWIDGET"

### BIND_AUTOFILL_SERVICE

    public static final String BIND_AUTOFILL_SERVICE

Must be required by a `AutofillService`, to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_AUTOFILL_SERVICE"

### BIND_CALL_REDIRECTION_SERVICE

    public static final String BIND_CALL_REDIRECTION_SERVICE

Must be required by a `CallRedirectionService`, to ensure that only the system can bind to it.

Protection level: signature|privileged

Constant Value: "android.permission.BIND_CALL_REDIRECTION_SERVICE"

### BIND_CARRIER_MESSAGING_CLIENT_SERVICE

    public static final String BIND_CARRIER_MESSAGING_CLIENT_SERVICE

A subclass of `CarrierMessagingClientService` must be protected with this permission.

Protection level: signature

Constant Value: "android.permission.BIND_CARRIER_MESSAGING_CLIENT_SERVICE"

### BIND_CARRIER_MESSAGING_SERVICE

    public static final String BIND_CARRIER_MESSAGING_SERVICE

This constant is deprecated.
Use `BIND_CARRIER_SERVICES` instead

Constant Value: "android.permission.BIND_CARRIER_MESSAGING_SERVICE"

### BIND_CARRIER_SERVICES

    public static final String BIND_CARRIER_SERVICES

The system process that is allowed to bind to services in carrier apps will have this permission. Carrier apps should use this permission to protect their services that only the system is allowed to bind to.

Protection level: signature|privileged

Constant Value: "android.permission.BIND_CARRIER_SERVICES"

### BIND_CHOOSER_TARGET_SERVICE

    public static final String BIND_CHOOSER_TARGET_SERVICE

This constant is deprecated.
For publishing direct share targets, please follow the instructions in https://developer.android.com/training/sharing/receive.html#providing-direct-share-targets instead.

Must be required by a `ChooserTargetService`, to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_CHOOSER_TARGET_SERVICE"

### BIND_COMPANION_DEVICE_SERVICE

    public static final String BIND_COMPANION_DEVICE_SERVICE

Must be required by any `CompanionDeviceService`s to ensure that only the system can bind to it.

Constant Value: "android.permission.BIND_COMPANION_DEVICE_SERVICE"

### BIND_CONDITION_PROVIDER_SERVICE

    public static final String BIND_CONDITION_PROVIDER_SERVICE

Must be required by a `ConditionProviderService`, to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_CONDITION_PROVIDER_SERVICE"

### BIND_CONTROLS

    public static final String BIND_CONTROLS

Allows SystemUI to request third party controls.

Should only be requested by the System and required by `ControlsProviderService` declarations.

Constant Value: "android.permission.BIND_CONTROLS"

### BIND_DEVICE_ADMIN

    public static final String BIND_DEVICE_ADMIN

Must be required by device administration receiver, to ensure that only the system can interact with it.

Protection level: signature

Constant Value: "android.permission.BIND_DEVICE_ADMIN"

### BIND_DREAM_SERVICE

    public static final String BIND_DREAM_SERVICE

Must be required by an `DreamService`, to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_DREAM_SERVICE"

### BIND_INCALL_SERVICE

    public static final String BIND_INCALL_SERVICE

Must be required by a `InCallService`, to ensure that only the system can bind to it.

Protection level: signature|privileged

Constant Value: "android.permission.BIND_INCALL_SERVICE"

### BIND_INPUT_METHOD

    public static final String BIND_INPUT_METHOD

Must be required by an `InputMethodService`, to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_INPUT_METHOD"

### BIND_MIDI_DEVICE_SERVICE

    public static final String BIND_MIDI_DEVICE_SERVICE

Must be required by an `MidiDeviceService`, to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_MIDI_DEVICE_SERVICE"

### BIND_NFC_SERVICE

    public static final String BIND_NFC_SERVICE

Must be required by a `HostApduService` or `OffHostApduService` to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_NFC_SERVICE"

### BIND_NOTIFICATION_LISTENER_SERVICE

    public static final String BIND_NOTIFICATION_LISTENER_SERVICE

Must be required by an `NotificationListenerService`, to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"

### BIND_PRINT_SERVICE

    public static final String BIND_PRINT_SERVICE

Must be required by a `PrintService`, to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_PRINT_SERVICE"

### BIND_QUICK_ACCESS_WALLET_SERVICE

    public static final String BIND_QUICK_ACCESS_WALLET_SERVICE

Must be required by a `QuickAccessWalletService` to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE"

### BIND_QUICK_SETTINGS_TILE

    public static final String BIND_QUICK_SETTINGS_TILE

Allows an application to bind to third party quick settings tiles.

Should only be requested by the System, should be required by TileService declarations.

Constant Value: "android.permission.BIND_QUICK_SETTINGS_TILE"

### BIND_REMOTEVIEWS

    public static final String BIND_REMOTEVIEWS

Must be required by a `RemoteViewsService`, to ensure that only the system can bind to it.

Protection level: signature|privileged

Constant Value: "android.permission.BIND_REMOTEVIEWS"

### BIND_SCREENING_SERVICE

    public static final String BIND_SCREENING_SERVICE

Must be required by a `CallScreeningService`, to ensure that only the system can bind to it.

Protection level: signature|privileged

Constant Value: "android.permission.BIND_SCREENING_SERVICE"

### BIND_TELECOM_CONNECTION_SERVICE

    public static final String BIND_TELECOM_CONNECTION_SERVICE

Must be required by a `ConnectionService`, to ensure that only the system can bind to it.

Protection level: signature|privileged

Constant Value: "android.permission.BIND_TELECOM_CONNECTION_SERVICE"

### BIND_TEXT_SERVICE

    public static final String BIND_TEXT_SERVICE

Must be required by a TextService (e.g. SpellCheckerService) to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_TEXT_SERVICE"

### BIND_TV_INPUT

    public static final String BIND_TV_INPUT

Must be required by a `TvInputService` to ensure that only the system can bind to it.

Protection level: signature|privileged

Constant Value: "android.permission.BIND_TV_INPUT"

### BIND_VISUAL_VOICEMAIL_SERVICE

    public static final String BIND_VISUAL_VOICEMAIL_SERVICE

Must be required by a link `VisualVoicemailService` to ensure that only the system can bind to it.

Protection level: signature|privileged

Constant Value: "android.permission.BIND_VISUAL_VOICEMAIL_SERVICE"

### BIND_VOICE_INTERACTION

    public static final String BIND_VOICE_INTERACTION

Must be required by a `VoiceInteractionService`, to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_VOICE_INTERACTION"

### BIND_VPN_SERVICE

    public static final String BIND_VPN_SERVICE

Must be required by a `VpnService`, to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_VPN_SERVICE"

### BIND_VR_LISTENER_SERVICE

    public static final String BIND_VR_LISTENER_SERVICE

Must be required by an `VrListenerService`, to ensure that only the system can bind to it.

Protection level: signature

Constant Value: "android.permission.BIND_VR_LISTENER_SERVICE"

### BIND_WALLPAPER

    public static final String BIND_WALLPAPER

Must be required by a `WallpaperService`, to ensure that only the system can bind to it.

Protection level: signature|privileged

Constant Value: "android.permission.BIND_WALLPAPER"

### BLUETOOTH

    public static final String BLUETOOTH

Allows applications to connect to paired bluetooth devices.

Protection level: normal

Constant Value: "android.permission.BLUETOOTH"

### BLUETOOTH_ADMIN

    public static final String BLUETOOTH_ADMIN

Allows applications to discover and pair bluetooth devices.

Protection level: normal

Constant Value: "android.permission.BLUETOOTH_ADMIN"

### BLUETOOTH_ADVERTISE

    public static final String BLUETOOTH_ADVERTISE

Required to be able to advertise to nearby Bluetooth devices.

Protection level: dangerous

Constant Value: "android.permission.BLUETOOTH_ADVERTISE"

### BLUETOOTH_CONNECT

    public static final String BLUETOOTH_CONNECT

Required to be able to connect to paired Bluetooth devices.

Protection level: dangerous

Constant Value: "android.permission.BLUETOOTH_CONNECT"

### BLUETOOTH_PRIVILEGED

    public static final String BLUETOOTH_PRIVILEGED

Allows applications to pair bluetooth devices without user interaction, and to allow or disallow phonebook access or message access.

Not for use by third-party applications.

Constant Value: "android.permission.BLUETOOTH_PRIVILEGED"

### BLUETOOTH_SCAN

    public static final String BLUETOOTH_SCAN

Required to be able to discover and pair nearby Bluetooth devices.

Protection level: dangerous

Constant Value: "android.permission.BLUETOOTH_SCAN"

### BODY_SENSORS

    public static final String BODY_SENSORS

Allows an application to access data from sensors that the user uses to measure what is happening inside their body, such as heart rate.

Protection level: dangerous

Constant Value: "android.permission.BODY_SENSORS"

### BROADCAST_PACKAGE_REMOVED

    public static final String BROADCAST_PACKAGE_REMOVED

Allows an application to broadcast a notification that an application package has been removed.

Not for use by third-party applications.

Constant Value: "android.permission.BROADCAST_PACKAGE_REMOVED"

### BROADCAST_SMS

    public static final String BROADCAST_SMS

Allows an application to broadcast an SMS receipt notification.

Not for use by third-party applications.

Constant Value: "android.permission.BROADCAST_SMS"

### BROADCAST_STICKY

    public static final String BROADCAST_STICKY

Allows an application to broadcast sticky intents. These are broadcasts whose data is held by the system after being finished, so that clients can quickly retrieve that data without having to wait for the next broadcast.

Protection level: normal

Constant Value: "android.permission.BROADCAST_STICKY"

### BROADCAST_WAP_PUSH

    public static final String BROADCAST_WAP_PUSH

Allows an application to broadcast a WAP PUSH receipt notification.

Not for use by third-party applications.

Constant Value: "android.permission.BROADCAST_WAP_PUSH"

### CALL_COMPANION_APP

    public static final String CALL_COMPANION_APP

Allows an app which implements the `InCallService` API to be eligible to be enabled as a calling companion app. This means that the Telecom framework will bind to the app's InCallService implementation when there are calls active. The app can use the InCallService API to view information about calls on the system and control these calls.

Protection level: normal

Constant Value: "android.permission.CALL_COMPANION_APP"

### CALL_PHONE

    public static final String CALL_PHONE

Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call.

Protection level: dangerous

Constant Value: "android.permission.CALL_PHONE"

### CALL_PRIVILEGED

    public static final String CALL_PRIVILEGED

Allows an application to call any phone number, including emergency numbers, without going through the Dialer user interface for the user to confirm the call being placed.

Not for use by third-party applications.

Constant Value: "android.permission.CALL_PRIVILEGED"

### CAMERA

    public static final String CAMERA

Required to be able to access the camera device.

This will automatically enforce the uses-feature manifest element for all camera features. If you do not require all camera features or can properly operate if a camera is not available, then you must modify your manifest as appropriate in order to install on devices that don't support all camera features.

Protection level: dangerous

Constant Value: "android.permission.CAMERA"

### CAPTURE_AUDIO_OUTPUT

    public static final String CAPTURE_AUDIO_OUTPUT

Allows an application to capture audio output. Use the `CAPTURE_MEDIA_OUTPUT` permission if only the `USAGE_UNKNOWN`), `USAGE_MEDIA`) or `USAGE_GAME`) usages are intended to be captured.

Not for use by third-party applications.

Constant Value: "android.permission.CAPTURE_AUDIO_OUTPUT"

### CHANGE_COMPONENT_ENABLED_STATE

    public static final String CHANGE_COMPONENT_ENABLED_STATE

Allows an application to change whether an application component (other than its own) is enabled or not.

Not for use by third-party applications.

Constant Value: "android.permission.CHANGE_COMPONENT_ENABLED_STATE"

### CHANGE_CONFIGURATION

    public static final String CHANGE_CONFIGURATION

Allows an application to modify the current configuration, such as locale.

Protection level: signature|privileged|development

Constant Value: "android.permission.CHANGE_CONFIGURATION"

### CHANGE_NETWORK_STATE

    public static final String CHANGE_NETWORK_STATE

Allows applications to change network connectivity state.

Protection level: normal

Constant Value: "android.permission.CHANGE_NETWORK_STATE"

### CHANGE_WIFI_MULTICAST_STATE

    public static final String CHANGE_WIFI_MULTICAST_STATE

Allows applications to enter Wi-Fi Multicast mode.

Protection level: normal

Constant Value: "android.permission.CHANGE_WIFI_MULTICAST_STATE"

### CHANGE_WIFI_STATE

    public static final String CHANGE_WIFI_STATE

Allows applications to change Wi-Fi connectivity state.

Protection level: normal

Constant Value: "android.permission.CHANGE_WIFI_STATE"

### CLEAR_APP_CACHE

    public static final String CLEAR_APP_CACHE

Allows an application to clear the caches of all installed applications on the device.

Protection level: signature|privileged

Constant Value: "android.permission.CLEAR_APP_CACHE"

### CONTROL_LOCATION_UPDATES

    public static final String CONTROL_LOCATION_UPDATES

Allows enabling/disabling location update notifications from the radio.

Not for use by third-party applications.

Constant Value: "android.permission.CONTROL_LOCATION_UPDATES"

### DELETE_CACHE_FILES

    public static final String DELETE_CACHE_FILES

Old permission for deleting an app's cache files, no longer used, but signals for us to quietly ignore calls instead of throwing an exception.

Protection level: signature|privileged

Constant Value: "android.permission.DELETE_CACHE_FILES"

### DELETE_PACKAGES

    public static final String DELETE_PACKAGES

Allows an application to delete packages.

Not for use by third-party applications.

Starting in `Build.VERSION_CODES.N`, user confirmation is requested when the application deleting the package is not the same application that installed the package.

Constant Value: "android.permission.DELETE_PACKAGES"

### DIAGNOSTIC

    public static final String DIAGNOSTIC

Allows applications to RW to diagnostic resources.

Not for use by third-party applications.

Constant Value: "android.permission.DIAGNOSTIC"

### DISABLE_KEYGUARD

    public static final String DISABLE_KEYGUARD

Allows applications to disable the keyguard if it is not secure.

Protection level: normal

Constant Value: "android.permission.DISABLE_KEYGUARD"

### DUMP

    public static final String DUMP

Allows an application to retrieve state dump information from system services.

Not for use by third-party applications.

Constant Value: "android.permission.DUMP"

### EXPAND_STATUS_BAR

    public static final String EXPAND_STATUS_BAR

Allows an application to expand or collapse the status bar.

Protection level: normal

Constant Value: "android.permission.EXPAND_STATUS_BAR"

### FACTORY_TEST

    public static final String FACTORY_TEST

Run as a manufacturer test application, running as the root user. Only available when the device is running in manufacturer test mode.

Not for use by third-party applications.

Constant Value: "android.permission.FACTORY_TEST"

### FOREGROUND_SERVICE

    public static final String FOREGROUND_SERVICE

Allows a regular application to use `Service.startForeground`.

Protection level: normal

Constant Value: "android.permission.FOREGROUND_SERVICE"

### GET_ACCOUNTS

    public static final String GET_ACCOUNTS

Allows access to the list of accounts in the Accounts Service.

Note: Beginning with Android 6.0 (API level 23), if an app shares the signature of the authenticator that manages an account, it does not need `"GET_ACCOUNTS"` permission to read information about that account. On Android 5.1 and lower, all apps need `"GET_ACCOUNTS"` permission to read information about any account.

Protection level: dangerous

Constant Value: "android.permission.GET_ACCOUNTS"

### GET_ACCOUNTS_PRIVILEGED

    public static final String GET_ACCOUNTS_PRIVILEGED

Allows access to the list of accounts in the Accounts Service.

Protection level: signature|privileged

Constant Value: "android.permission.GET_ACCOUNTS_PRIVILEGED"

### GET_PACKAGE_SIZE

    public static final String GET_PACKAGE_SIZE

Allows an application to find out the space used by any package.

Protection level: normal

Constant Value: "android.permission.GET_PACKAGE_SIZE"

### GET_TASKS

    public static final String GET_TASKS

This constant is deprecated.
No longer enforced.

Constant Value: "android.permission.GET_TASKS"

### GLOBAL_SEARCH

    public static final String GLOBAL_SEARCH

This permission can be used on content providers to allow the global search system to access their data. Typically it used when the provider has some permissions protecting it (which global search would not be expected to hold), and added as a read-only permission to the path in the provider where global search queries are performed. This permission can not be held by regular applications; it is used by applications to protect themselves from everyone else besides global search.

Protection level: signature|privileged

Constant Value: "android.permission.GLOBAL_SEARCH"

### HIDE_OVERLAY_WINDOWS

    public static final String HIDE_OVERLAY_WINDOWS

Allows an app to prevent non-system-overlay windows from being drawn on top of it

Constant Value: "android.permission.HIDE_OVERLAY_WINDOWS"

### HIGH_SAMPLING_RATE_SENSORS

    public static final String HIGH_SAMPLING_RATE_SENSORS

Allows an app to access sensor data with a sampling rate greater than 200 Hz.

Protection level: normal

Constant Value: "android.permission.HIGH_SAMPLING_RATE_SENSORS"

### INSTALL_LOCATION_PROVIDER

    public static final String INSTALL_LOCATION_PROVIDER

Allows an application to install a location provider into the Location Manager.

Not for use by third-party applications.

Constant Value: "android.permission.INSTALL_LOCATION_PROVIDER"

### INSTALL_PACKAGES

    public static final String INSTALL_PACKAGES

Allows an application to install packages.

Not for use by third-party applications.

Constant Value: "android.permission.INSTALL_PACKAGES"

### INSTALL_SHORTCUT

    public static final String INSTALL_SHORTCUT

Allows an application to install a shortcut in Launcher.

In Android O (API level 26) and higher, the `INSTALL_SHORTCUT` broadcast no longer has any effect on your app because it's a private, implicit broadcast. Instead, you should create an app shortcut by using the `requestPinShortcut()` method from the `ShortcutManager` class.

Protection level: normal

Constant Value: "com.android.launcher.permission.INSTALL_SHORTCUT"

### INSTANT_APP_FOREGROUND_SERVICE

    public static final String INSTANT_APP_FOREGROUND_SERVICE

Allows an instant app to create foreground services.

Protection level: signature|development|instant|appop

Constant Value: "android.permission.INSTANT_APP_FOREGROUND_SERVICE"

### INTERACT_ACROSS_PROFILES

    public static final String INTERACT_ACROSS_PROFILES

Allows interaction across profiles in the same profile group.

Constant Value: "android.permission.INTERACT_ACROSS_PROFILES"

### INTERNET

    public static final String INTERNET

Allows applications to open network sockets.

Protection level: normal

Constant Value: "android.permission.INTERNET"

### KILL_BACKGROUND_PROCESSES

    public static final String KILL_BACKGROUND_PROCESSES

Allows an application to call `ActivityManager.killBackgroundProcesses(String)`.

Protection level: normal

Constant Value: "android.permission.KILL_BACKGROUND_PROCESSES"

### LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK

    public static final String LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK

An application needs this permission for `Settings.ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITY` to show its `Activity` embedded in Settings app.

Constant Value: "android.permission.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK"

### LOADER_USAGE_STATS

    public static final String LOADER_USAGE_STATS

Allows a data loader to read a package's access logs. The access logs contain the set of pages referenced over time.

Declaring the permission implies intention to use the API and the user of the device can grant permission through the Settings application.

Protection level: signature|privileged|appop

A data loader has to be the one which provides data to install an app.

A data loader has to have both permission:LOADER_USAGE_STATS AND appop:LOADER_USAGE_STATS allowed to be able to access the read logs.

Constant Value: "android.permission.LOADER_USAGE_STATS"

### LOCATION_HARDWARE

    public static final String LOCATION_HARDWARE

Allows an application to use location features in hardware, such as the geofencing api.

Not for use by third-party applications.

Constant Value: "android.permission.LOCATION_HARDWARE"

### MANAGE_DOCUMENTS

    public static final String MANAGE_DOCUMENTS

Allows an application to manage access to documents, usually as part of a document picker.

This permission should only be requested by the platform document management app. This permission cannot be granted to third-party apps.

Constant Value: "android.permission.MANAGE_DOCUMENTS"

### MANAGE_EXTERNAL_STORAGE

    public static final String MANAGE_EXTERNAL_STORAGE

Allows an application a broad access to external storage in scoped storage. Intended to be used by few apps that need to manage files on behalf of the users.

Protection level: signature|appop|preinstalled

Constant Value: "android.permission.MANAGE_EXTERNAL_STORAGE"

### MANAGE_MEDIA

    public static final String MANAGE_MEDIA

Allows an application to modify and delete media files on this device or any connected storage device without user confirmation. Applications must already be granted the `READ_EXTERNAL_STORAGE` or `MANAGE_EXTERNAL_STORAGE`} permissions for this permission to take effect.

Even if applications are granted this permission, if applications want to modify or delete media files, they also must get the access by calling `MediaStore.createWriteRequest(ContentResolver, Collection)`, `MediaStore.createDeleteRequest(ContentResolver, Collection)`, or `MediaStore.createTrashRequest(ContentResolver, Collection, boolean)`.

This permission doesn't give read or write access directly. It only prevents the user confirmation dialog for these requests.

If applications are not granted `ACCESS_MEDIA_LOCATION`, the system also pops up the user confirmation dialog for the write request.

Protection level: signature|appop|preinstalled

Constant Value: "android.permission.MANAGE_MEDIA"

### MANAGE_ONGOING_CALLS

    public static final String MANAGE_ONGOING_CALLS

Allows to query ongoing call details and manage ongoing calls

Protection level: signature|appop

Constant Value: "android.permission.MANAGE_ONGOING_CALLS"

### MANAGE_OWN_CALLS

    public static final String MANAGE_OWN_CALLS

Allows a calling application which manages its own calls through the self-managed `ConnectionService` APIs. See `PhoneAccount.CAPABILITY_SELF_MANAGED` for more information on the self-managed ConnectionService APIs.

Protection level: normal

Constant Value: "android.permission.MANAGE_OWN_CALLS"

### MASTER_CLEAR

    public static final String MASTER_CLEAR

Not for use by third-party applications.

Constant Value: "android.permission.MASTER_CLEAR"

### MEDIA_CONTENT_CONTROL

    public static final String MEDIA_CONTENT_CONTROL

Allows an application to know what content is playing and control its playback.

Not for use by third-party applications due to privacy of media consumption

Constant Value: "android.permission.MEDIA_CONTENT_CONTROL"

### MODIFY_AUDIO_SETTINGS

    public static final String MODIFY_AUDIO_SETTINGS

Allows an application to modify global audio settings.

Protection level: normal

Constant Value: "android.permission.MODIFY_AUDIO_SETTINGS"

### MODIFY_PHONE_STATE

    public static final String MODIFY_PHONE_STATE

Allows modification of the telephony state - power on, mmi, etc. Does not include placing calls.

Not for use by third-party applications.

Constant Value: "android.permission.MODIFY_PHONE_STATE"

### MOUNT_FORMAT_FILESYSTEMS

    public static final String MOUNT_FORMAT_FILESYSTEMS

Allows formatting file systems for removable storage.

Not for use by third-party applications.

Constant Value: "android.permission.MOUNT_FORMAT_FILESYSTEMS"

### MOUNT_UNMOUNT_FILESYSTEMS

    public static final String MOUNT_UNMOUNT_FILESYSTEMS

Allows mounting and unmounting file systems for removable storage.

Not for use by third-party applications.

Constant Value: "android.permission.MOUNT_UNMOUNT_FILESYSTEMS"

### NFC

    public static final String NFC

Allows applications to perform I/O operations over NFC.

Protection level: normal

Constant Value: "android.permission.NFC"

### NFC_PREFERRED_PAYMENT_INFO

    public static final String NFC_PREFERRED_PAYMENT_INFO

Allows applications to receive NFC preferred payment service information.

Protection level: normal

Constant Value: "android.permission.NFC_PREFERRED_PAYMENT_INFO"

### NFC_TRANSACTION_EVENT

    public static final String NFC_TRANSACTION_EVENT

Allows applications to receive NFC transaction events.

Protection level: normal

Constant Value: "android.permission.NFC_TRANSACTION_EVENT"

### PACKAGE_USAGE_STATS

    public static final String PACKAGE_USAGE_STATS

Allows an application to collect component usage statistics

Declaring the permission implies intention to use the API and the user of the device can grant permission through the Settings application.

Protection level: signature|privileged|development|appop|retailDemo

Constant Value: "android.permission.PACKAGE_USAGE_STATS"

### PERSISTENT_ACTIVITY

    public static final String PERSISTENT_ACTIVITY

This constant is deprecated.
This functionality will be removed in the future; please do not use. Allow an application to make its activities persistent.

Constant Value: "android.permission.PERSISTENT_ACTIVITY"

### PROCESS_OUTGOING_CALLS

    public static final String PROCESS_OUTGOING_CALLS

This constant is deprecated.
Applications should use `CallRedirectionService` instead of the `Intent.ACTION_NEW_OUTGOING_CALL` broadcast.

Allows an application to see the number being dialed during an outgoing call with the option to redirect the call to a different number or abort the call altogether.

Protection level: dangerous

This is a hard restricted permission which cannot be held by an app until the installer on record whitelists the permission. For more details see `PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)`.

Constant Value: "android.permission.PROCESS_OUTGOING_CALLS"

### QUERY_ALL_PACKAGES

    public static final String QUERY_ALL_PACKAGES

Allows query of any normal app on the device, regardless of manifest declarations.

Protection level: normal

Constant Value: "android.permission.QUERY_ALL_PACKAGES"

### READ_CALENDAR

    public static final String READ_CALENDAR

Allows an application to read the user's calendar data.

Protection level: dangerous

Constant Value: "android.permission.READ_CALENDAR"

### READ_CALL_LOG

    public static final String READ_CALL_LOG

Allows an application to read the user's call log.

Note: If your app uses the `READ_CONTACTS` permission and both your `minSdkVersion` and `targetSdkVersion` values are set to 15 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your `targetSdkVersion` is 16 or higher.

Protection level: dangerous

This is a hard restricted permission which cannot be held by an app until the installer on record whitelists the permission. For more details see `PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)`.

Constant Value: "android.permission.READ_CALL_LOG"

### READ_CONTACTS

    public static final String READ_CONTACTS

Allows an application to read the user's contacts data.

Protection level: dangerous

Constant Value: "android.permission.READ_CONTACTS"

### READ_EXTERNAL_STORAGE

    public static final String READ_EXTERNAL_STORAGE

Allows an application to read from external storage.

Any app that declares the `WRITE_EXTERNAL_STORAGE` permission is implicitly granted this permission.

This permission is enforced starting in API level 19. Before API level 19, this permission is not enforced and all apps still have access to read from external storage. You can test your app with the permission enforced by enabling Protect USB storage under Developer options in the Settings app on a device running Android 4.1 or higher.

Also starting in API level 19, this permission is not required to read/write files in your application-specific directories returned by `Context.getExternalFilesDir(String)` and `Context.getExternalCacheDir()`.

Note: If both your `minSdkVersion` and `targetSdkVersion` values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your `targetSdkVersion` is 4 or higher.

This is a soft restricted permission which cannot be held by an app it its full form until the installer on record whitelists the permission. Specifically, if the permission is allowlisted the holder app can access external storage and the visual and aural media collections while if the permission is not allowlisted the holder app can only access to the visual and aural medial collections. Also the permission is immutably restricted meaning that the allowlist state can be specified only at install time and cannot change until the app is installed. For more details see `PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)`.

Protection level: dangerous

Constant Value: "android.permission.READ_EXTERNAL_STORAGE"

### READ_INPUT_STATE

    public static final String READ_INPUT_STATE

This constant is deprecated.
The API that used this permission has been removed.

Allows an application to retrieve the current state of keys and switches.

Not for use by third-party applications.

Constant Value: "android.permission.READ_INPUT_STATE"

### READ_LOGS

    public static final String READ_LOGS

Allows an application to read the low-level system log files.

Not for use by third-party applications, because Log entries can contain the user's private information.

Constant Value: "android.permission.READ_LOGS"

### READ_PHONE_NUMBERS

    public static final String READ_PHONE_NUMBERS

Allows read access to the device's phone number(s). This is a subset of the capabilities granted by `READ_PHONE_STATE` but is exposed to instant applications.

Protection level: dangerous

Constant Value: "android.permission.READ_PHONE_NUMBERS"

### READ_PHONE_STATE

    public static final String READ_PHONE_STATE

Allows read only access to phone state, including the current cellular network information, the status of any ongoing calls, and a list of any `PhoneAccount`s registered on the device.

Note: If both your `minSdkVersion` and `targetSdkVersion` values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your `targetSdkVersion` is 4 or higher.

Protection level: dangerous

Constant Value: "android.permission.READ_PHONE_STATE"

### READ_PRECISE_PHONE_STATE

    public static final String READ_PRECISE_PHONE_STATE

Allows read only access to precise phone state. Allows reading of detailed information about phone state for special-use applications such as dialers, carrier applications, or ims applications.

Constant Value: "android.permission.READ_PRECISE_PHONE_STATE"

### READ_SMS

    public static final String READ_SMS

Allows an application to read SMS messages.

Protection level: dangerous

This is a hard restricted permission which cannot be held by an app until the installer on record whitelists the permission. For more details see `PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)`.

Constant Value: "android.permission.READ_SMS"

### READ_SYNC_SETTINGS

    public static final String READ_SYNC_SETTINGS

Allows applications to read the sync settings.

Protection level: normal

Constant Value: "android.permission.READ_SYNC_SETTINGS"

### READ_SYNC_STATS

    public static final String READ_SYNC_STATS

Allows applications to read the sync stats.

Protection level: normal

Constant Value: "android.permission.READ_SYNC_STATS"

### READ_VOICEMAIL

    public static final String READ_VOICEMAIL

Allows an application to read voicemails in the system.

Protection level: signature|privileged|role

Constant Value: "com.android.voicemail.permission.READ_VOICEMAIL"

### REBOOT

    public static final String REBOOT

Required to be able to reboot the device.

Not for use by third-party applications.

Constant Value: "android.permission.REBOOT"

### RECEIVE_BOOT_COMPLETED

    public static final String RECEIVE_BOOT_COMPLETED

Allows an application to receive the `Intent.ACTION_BOOT_COMPLETED` that is broadcast after the system finishes booting. If you don't request this permission, you will not receive the broadcast at that time. Though holding this permission does not have any security implications, it can have a negative impact on the user experience by increasing the amount of time it takes the system to start and allowing applications to have themselves running without the user being aware of them. As such, you must explicitly declare your use of this facility to make that visible to the user.

Protection level: normal

Constant Value: "android.permission.RECEIVE_BOOT_COMPLETED"

### RECEIVE_MMS

    public static final String RECEIVE_MMS

Allows an application to monitor incoming MMS messages.

Protection level: dangerous

This is a hard restricted permission which cannot be held by an app until the installer on record whitelists the permission. For more details see `PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)`.

Constant Value: "android.permission.RECEIVE_MMS"

### RECEIVE_SMS

    public static final String RECEIVE_SMS

Allows an application to receive SMS messages.

Protection level: dangerous

This is a hard restricted permission which cannot be held by an app until the installer on record whitelists the permission. For more details see `PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)`.

Constant Value: "android.permission.RECEIVE_SMS"

### RECEIVE_WAP_PUSH

    public static final String RECEIVE_WAP_PUSH

Allows an application to receive WAP push messages.

Protection level: dangerous

This is a hard restricted permission which cannot be held by an app until the installer on record whitelists the permission. For more details see `PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)`.

Constant Value: "android.permission.RECEIVE_WAP_PUSH"

### RECORD_AUDIO

    public static final String RECORD_AUDIO

Allows an application to record audio.

Protection level: dangerous

Constant Value: "android.permission.RECORD_AUDIO"

### REORDER_TASKS

    public static final String REORDER_TASKS

Allows an application to change the Z-order of tasks.

Protection level: normal

Constant Value: "android.permission.REORDER_TASKS"

### REQUEST_COMPANION_PROFILE_WATCH

    public static final String REQUEST_COMPANION_PROFILE_WATCH

Allows app to request to be associated with a device via `CompanionDeviceManager` as a "watch"

Protection level: normal

Constant Value: "android.permission.REQUEST_COMPANION_PROFILE_WATCH"

### REQUEST_COMPANION_RUN_IN_BACKGROUND

    public static final String REQUEST_COMPANION_RUN_IN_BACKGROUND

Allows a companion app to run in the background. This permission implies `REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND`, and allows to start a foreground service from the background. If an app does not have to run in the background, but only needs to start a foreground service from the background, consider using `REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND`, which is less powerful.

Protection level: normal

Constant Value: "android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND"

### REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND

    public static final String REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND

Allows a companion app to start a foreground service from the background.

Protection level: normal

See also:

- `REQUEST_COMPANION_RUN_IN_BACKGROUND`

Constant Value: "android.permission.REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND"

### REQUEST_COMPANION_USE_DATA_IN_BACKGROUND

    public static final String REQUEST_COMPANION_USE_DATA_IN_BACKGROUND

Allows a companion app to use data in the background.

Protection level: normal

Constant Value: "android.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND"

### REQUEST_DELETE_PACKAGES

    public static final String REQUEST_DELETE_PACKAGES

Allows an application to request deleting packages. Apps targeting APIs `Build.VERSION_CODES.P` or greater must hold this permission in order to use `Intent.ACTION_UNINSTALL_PACKAGE` or `PackageInstaller.uninstall(VersionedPackage, IntentSender)`.

Protection level: normal

Constant Value: "android.permission.REQUEST_DELETE_PACKAGES"

### REQUEST_IGNORE_BATTERY_OPTIMIZATIONS

    public static final String REQUEST_IGNORE_BATTERY_OPTIMIZATIONS

Permission an application must hold in order to use `Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS`.

Protection level: normal

Constant Value: "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"

### REQUEST_INSTALL_PACKAGES

    public static final String REQUEST_INSTALL_PACKAGES

Allows an application to request installing packages. Apps targeting APIs greater than 25 must hold this permission in order to use `Intent.ACTION_INSTALL_PACKAGE`.

Protection level: signature

Constant Value: "android.permission.REQUEST_INSTALL_PACKAGES"

### REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE

    public static final String REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE

Allows an application to subscribe to notifications about the presence status change of their associated companion device

Constant Value: "android.permission.REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE"

### REQUEST_PASSWORD_COMPLEXITY

    public static final String REQUEST_PASSWORD_COMPLEXITY

Allows an application to request the screen lock complexity and prompt users to update the screen lock to a certain complexity level.

Protection level: normal

Constant Value: "android.permission.REQUEST_PASSWORD_COMPLEXITY"

### RESTART_PACKAGES

    public static final String RESTART_PACKAGES

This constant is deprecated.
The `ActivityManager.restartPackage(String)` API is no longer supported.

Constant Value: "android.permission.RESTART_PACKAGES"

### SCHEDULE_EXACT_ALARM

    public static final String SCHEDULE_EXACT_ALARM

Allows applications to use exact alarm APIs.

Exact alarms should only be used for user-facing features. For more details, see Exact alarm permission.

Apps who hold this permission and target API level 31 or above, always stay in the `WORKING_SET` or lower standby bucket. Applications targeting API level 30 or below do not need this permission to use exact alarm APIs.

Constant Value: "android.permission.SCHEDULE_EXACT_ALARM"

### SEND_RESPOND_VIA_MESSAGE

    public static final String SEND_RESPOND_VIA_MESSAGE

Allows an application (Phone) to send a request to other applications to handle the respond-via-message action during incoming calls.

Not for use by third-party applications.

Constant Value: "android.permission.SEND_RESPOND_VIA_MESSAGE"

### SEND_SMS

    public static final String SEND_SMS

Allows an application to send SMS messages.

Protection level: dangerous

This is a hard restricted permission which cannot be held by an app until the installer on record whitelists the permission. For more details see `PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)`.

Constant Value: "android.permission.SEND_SMS"

### SET_ALARM

    public static final String SET_ALARM

Allows an application to broadcast an Intent to set an alarm for the user.

Protection level: normal

Constant Value: "com.android.alarm.permission.SET_ALARM"

### SET_ALWAYS_FINISH

    public static final String SET_ALWAYS_FINISH

Allows an application to control whether activities are immediately finished when put in the background.

Not for use by third-party applications.

Constant Value: "android.permission.SET_ALWAYS_FINISH"

### SET_ANIMATION_SCALE

    public static final String SET_ANIMATION_SCALE

Modify the global animation scaling factor.

Not for use by third-party applications.

Constant Value: "android.permission.SET_ANIMATION_SCALE"

### SET_DEBUG_APP

    public static final String SET_DEBUG_APP

Configure an application for debugging.

Not for use by third-party applications.

Constant Value: "android.permission.SET_DEBUG_APP"

### SET_PREFERRED_APPLICATIONS

    public static final String SET_PREFERRED_APPLICATIONS

This constant is deprecated.
No longer useful, see `PackageManager.addPackageToPreferred(String)` for details.

Constant Value: "android.permission.SET_PREFERRED_APPLICATIONS"

### SET_PROCESS_LIMIT

    public static final String SET_PROCESS_LIMIT

Allows an application to set the maximum number of (not needed) application processes that can be running.

Not for use by third-party applications.

Constant Value: "android.permission.SET_PROCESS_LIMIT"

### SET_TIME

    public static final String SET_TIME

Allows applications to set the system time directly.

Not for use by third-party applications.

Constant Value: "android.permission.SET_TIME"

### SET_TIME_ZONE

    public static final String SET_TIME_ZONE

Allows applications to set the system time zone directly.

Not for use by third-party applications.

Constant Value: "android.permission.SET_TIME_ZONE"

### SET_WALLPAPER

    public static final String SET_WALLPAPER

Allows applications to set the wallpaper.

Protection level: normal

Constant Value: "android.permission.SET_WALLPAPER"

### SET_WALLPAPER_HINTS

    public static final String SET_WALLPAPER_HINTS

Allows applications to set the wallpaper hints.

Protection level: normal

Constant Value: "android.permission.SET_WALLPAPER_HINTS"

### SIGNAL_PERSISTENT_PROCESSES

    public static final String SIGNAL_PERSISTENT_PROCESSES

Allow an application to request that a signal be sent to all persistent processes.

Not for use by third-party applications.

Constant Value: "android.permission.SIGNAL_PERSISTENT_PROCESSES"

### SMS_FINANCIAL_TRANSACTIONS

    public static final String SMS_FINANCIAL_TRANSACTIONS

This constant is deprecated.
The API that used this permission is no longer functional.

Allows financial apps to read filtered sms messages. Protection level: signature|appop

Constant Value: "android.permission.SMS_FINANCIAL_TRANSACTIONS"

### START_FOREGROUND_SERVICES_FROM_BACKGROUND

    public static final String START_FOREGROUND_SERVICES_FROM_BACKGROUND

Allows an application to start foreground services from the background at any time. This permission is not for use by third-party applications, with the only exception being if the app is the default SMS app. Otherwise, it's only usable by privileged apps, app verifier app, and apps with any of the EMERGENCY or SYSTEM GALLERY roles.

Constant Value: "android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"

### START_VIEW_PERMISSION_USAGE

    public static final String START_VIEW_PERMISSION_USAGE

Allows the holder to start the permission usage screen for an app.

Protection level: signature|installer

Constant Value: "android.permission.START_VIEW_PERMISSION_USAGE"

### STATUS_BAR

    public static final String STATUS_BAR

Allows an application to open, close, or disable the status bar and its icons.

Not for use by third-party applications.

Constant Value: "android.permission.STATUS_BAR"

### SYSTEM_ALERT_WINDOW

    public static final String SYSTEM_ALERT_WINDOW

Allows an app to create windows using the type `WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY`, shown on top of all other apps. Very few apps should use this permission; these windows are intended for system-level interaction with the user.

Note: If the app targets API level 23 or higher, the app user must explicitly grant this permission to the app through a permission management screen. The app requests the user's approval by sending an intent with action `Settings.ACTION_MANAGE_OVERLAY_PERMISSION`. The app can check whether it has this authorization by calling `Settings.canDrawOverlays()`.

Protection level: signature|setup|appop|installer|pre23|development

Constant Value: "android.permission.SYSTEM_ALERT_WINDOW"

### TRANSMIT_IR

    public static final String TRANSMIT_IR

Allows using the device's IR transmitter, if available.

Protection level: normal

Constant Value: "android.permission.TRANSMIT_IR"

### UNINSTALL_SHORTCUT

    public static final String UNINSTALL_SHORTCUT

Don't use this permission in your app.
This permission is no longer supported.

Constant Value: "com.android.launcher.permission.UNINSTALL_SHORTCUT"

### UPDATE_DEVICE_STATS

    public static final String UPDATE_DEVICE_STATS

Allows an application to update device statistics.

Not for use by third-party applications.

Constant Value: "android.permission.UPDATE_DEVICE_STATS"

### UPDATE_PACKAGES_WITHOUT_USER_ACTION

    public static final String UPDATE_PACKAGES_WITHOUT_USER_ACTION

Allows an application to indicate via `PackageInstaller.SessionParams.setRequireUserAction(int)` that user action should not be required for an app update.

Protection level: normal

Constant Value: "android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION"

### USE_BIOMETRIC

    public static final String USE_BIOMETRIC

Allows an app to use device supported biometric modalities.

Protection level: normal

Constant Value: "android.permission.USE_BIOMETRIC"

### USE_FINGERPRINT

    public static final String USE_FINGERPRINT

This constant is deprecated.
Applications should request `USE_BIOMETRIC` instead

Allows an app to use fingerprint hardware.

Protection level: normal

Constant Value: "android.permission.USE_FINGERPRINT"

### USE_FULL_SCREEN_INTENT

    public static final String USE_FULL_SCREEN_INTENT

Required for apps targeting `Build.VERSION_CODES.Q` that want to use `notification full screen intents`.

Protection level: normal

Constant Value: "android.permission.USE_FULL_SCREEN_INTENT"

### USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER

    public static final String USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER

Allows to read device identifiers and use ICC based authentication like EAP-AKA. Often required in authentication to access the carrier's server and manage services of the subscriber.

Protection level: signature|appop

Constant Value: "android.permission.USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER"

### USE_SIP

    public static final String USE_SIP

Allows an application to use SIP service.

Protection level: dangerous

Constant Value: "android.permission.USE_SIP"

### UWB_RANGING

    public static final String UWB_RANGING

Required to be able to range to devices using ultra-wideband.

Protection level: dangerous

Constant Value: "android.permission.UWB_RANGING"

### VIBRATE

    public static final String VIBRATE

Allows access to the vibrator.

Protection level: normal

Constant Value: "android.permission.VIBRATE"

### WAKE_LOCK

    public static final String WAKE_LOCK

Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming.

Protection level: normal

Constant Value: "android.permission.WAKE_LOCK"

### WRITE_APN_SETTINGS

    public static final String WRITE_APN_SETTINGS

Allows applications to write the apn settings and read sensitive fields of an existing apn settings like user and password.

Not for use by third-party applications.

Constant Value: "android.permission.WRITE_APN_SETTINGS"

### WRITE_CALENDAR

    public static final String WRITE_CALENDAR

Allows an application to write the user's calendar data.

Protection level: dangerous

Constant Value: "android.permission.WRITE_CALENDAR"

### WRITE_CALL_LOG

    public static final String WRITE_CALL_LOG

Allows an application to write (but not read) the user's call log data.

Note: If your app uses the `WRITE_CONTACTS` permission and both your `minSdkVersion` and `targetSdkVersion` values are set to 15 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your `targetSdkVersion` is 16 or higher.

Protection level: dangerous

This is a hard restricted permission which cannot be held by an app until the installer on record whitelists the permission. For more details see `PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)`.

Constant Value: "android.permission.WRITE_CALL_LOG"

### WRITE_CONTACTS

    public static final String WRITE_CONTACTS

Allows an application to write the user's contacts data.

Protection level: dangerous

Constant Value: "android.permission.WRITE_CONTACTS"

### WRITE_EXTERNAL_STORAGE

    public static final String WRITE_EXTERNAL_STORAGE

Allows an application to write to external storage.

Note: If both your `minSdkVersion` and `targetSdkVersion` values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your `targetSdkVersion` is 4 or higher.

Starting in API level 19, this permission is not required to read/write files in your application-specific directories returned by `Context.getExternalFilesDir(String)` and `Context.getExternalCacheDir()`.

If this permission is not allowlisted for an app that targets an API level before `Build.VERSION_CODES.Q` this permission cannot be granted to apps.

Protection level: dangerous

Constant Value: "android.permission.WRITE_EXTERNAL_STORAGE"

### WRITE_GSERVICES

    public static final String WRITE_GSERVICES

Allows an application to modify the Google service map.

Not for use by third-party applications.

Constant Value: "android.permission.WRITE_GSERVICES"

### WRITE_SECURE_SETTINGS

    public static final String WRITE_SECURE_SETTINGS

Allows an application to read or write the secure system settings.

Not for use by third-party applications.

Constant Value: "android.permission.WRITE_SECURE_SETTINGS"

### WRITE_SETTINGS

    public static final String WRITE_SETTINGS

Allows an application to read or write the system settings.

Note: If the app targets API level 23 or higher, the app user must explicitly grant this permission to the app through a permission management screen. The app requests the user's approval by sending an intent with action `Settings.ACTION_MANAGE_WRITE_SETTINGS`. The app can check whether it has this authorization by calling `Settings.System.canWrite()`.

Protection level: signature|preinstalled|appop|pre23

Constant Value: "android.permission.WRITE_SETTINGS"

### WRITE_SYNC_SETTINGS

    public static final String WRITE_SYNC_SETTINGS

Allows applications to write the sync settings.

Protection level: normal

Constant Value: "android.permission.WRITE_SYNC_SETTINGS"

### WRITE_VOICEMAIL

    public static final String WRITE_VOICEMAIL

Allows an application to modify and remove existing voicemails in the system.

Protection level: signature|privileged|role

Constant Value: "com.android.voicemail.permission.WRITE_VOICEMAIL"

## Public constructors

### permission

    public permission ()

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*