Show: Delphi C++
Display Preferences

Uses Permissions

From RAD Studio
Jump to: navigation, search

Go Up to Application Options

Project > Options > Application > Uses Permissions

Use this dialog box to specify the permissions that yourAndroid application requires to work. RAD Studio adds the permissions you specify in the AndroidManifest.xml file.

Caution: Carefully review the list of permissions that are configured for your Android application. You should disable permissions that your application does not need, because:

  • Android devices prompt your users to accept every requested permission when they run your application for the first time.
  • Application stores such as Google Play may use permissions to filter out applications.
  • For example, if your application requires the Call phone permission (which is required by default), application stores might not let users install your application on tablets.

For example:

  • InterBase requires certain permissions:
    • Internet: Allows applications to access network sockets. If you are building Client/Server apps accessing remote InterBase databases, this permission is a must-have. This permission is also required by InterBase "call home" silent license registration.
    • Read external storage/Write external storage: Allows access to the external storage location where InterBase files, including your database files, are delivered. This permission is required for applications to perform read/write operations.
  • Some FireMonkey components require certain permissions. For example:
    • TCalendarEdit requires Read calendar and Write calendar permissions.
    • TLocationSensor requires Access coarse location and Access fine location permissions.

Some Basic Android Permissions are Set for All FireMonkey Android Apps

New Android applications have the following required permissions set by default:

INTERNET Permission Is Always Set for the Development Configuration

Your Android apps have several Uses Permissions that are set by default, including the INTERNET permission.

  • When you build an Android app with the Configuration set to Development (in the Projects Window), the INTERNET permission is always implicitly set, even if you disable the INTERNET permission on Uses Permissions. This is because the RAD Studio debugger requires the INTERNET permission.
  • For the Application Store configuration, however, you can disable the INTERNET permission using Project > Options > Uses Permissions.

Here is the Projects Window with the Development configuration node set for an Android app:

ConfigProjMgrAndroid.png

Dialog Box Field Descriptions

Options Description

Target, Apply, Save

See Target Options.

Common items

See Common Items on Project Options Pages.

Uses Permissions

The following uses permissions can be used as required for most Android applications. Some of the most commonly used basic permissions are preset by RAD Studio when you create an Android app.

Normal Uses Permissions

Permission Description

Access location extra commands

Allows an application to access extra location provider commands.

Access network state

Allows applications to access information about networks.

Access notification policy

Marker permission for applications that wish to access notification policy.

Access wifi state

Allows applications to access information about Wi-Fi networks.

Battery stats

Allows an application to collect battery statistics.

Bluetooth

Allows applications to connect to paired Bluetooth devices.

Bluetooth admin

Allows applications to discover and pair Bluetooth devices.

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.

Change configuration

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

Change network state

Allows applications to change network connectivity state.

Change wifi multicast state

Allows applications to enter Wi-Fi Multicast mode.

Change wifi state

Allows applications to change Wi-Fi connectivity state.

Disable keyguard

Allows applications to disable the keyguard.

Expand status bar

Allows an application to expand or collapse the status bar.

Flashlight

Allows access to the flashlight.

Foreground service

Allows an instant app to create foreground services.

Get package size

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

Get tasks

Allows an application to get information about the currently or recently running tasks.

Global search

Allows the global search system to access the data of specific content providers. Typically Global search is used when the provider has some permissions protecting it (which global search would not be expected to hold), and is added as a read-only permission to the path in the provider where global search queries are performed. The Global search permission cannot be held by regular applications; it is used by applications to protect themselves from all other applications except for global search.

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.

Instant app foreground service

Allows an instant app to create foreground services.

Internet

Allows applications to open network sockets.

Kill background processes

Allows an application to call killBackgroundProcesses(String).

Manage own calls

Allows a calling application which manages it own calls through the self-managed ConnectionService APIs.

Modify audio settings

Allows an application to modify global audio settings.

NFC

Allows applications to perform I/O operations over NFC.

NFC transaction event

Allows applications to receive NFC transaction events.

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.

Read GServices

Read sync settings

Allows applications to read the sync settings.

Read sync stats

Allows applications to read the sync stats.

Receive boot completed

Allows an application to receive the ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting.

Reorder tasks

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

Request companion run in background

Allows a companion app to run in the background.

Request companion use data in background

Allows a companion app to use data in the background.

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).

Request ignore battery optimizations

Permission an application must hold in order to use Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS. This is a normal permission: an app requesting it will always be granted the permission, without the user needing to approve or see it.

Set alarm

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

Set wallpaper

Allows applications to set the wallpaper.

Set wallpaper hints

Allows applications to set the wallpaper hints.

Subscribed feeds read

Allows an application to allow access the subscribed feeds ContentProvider.

Transmit IR

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

Use biometric

Allows an app to use device supported biometric modalities.

Use fingerprint

Allows an app to use fingerprint hardware.

Vending billing (In-app Billing)

Allows using the In-app Billing service. See the Android documentation for additional information.

Vibrate

Allows access to the vibrator.

Wake lock

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

Write sync settings

Allows applications to write the sync settings.

Write user dictionary

Allows an application to write to the user dictionary.

The documentation in the Description column of the table above is licensed under Apache 2.0. Copyright © Android Open Source Project.

Dangerous Uses Permissions

The following uses permissions require runtime user approval.

Permission Description

Access coarse location

Allows an app to access approximate location derived from network location sources such as cell towers and Wi-Fi.

Access fine location

Allows an app to access precise location from location sources such as GPS, cell towers, and Wi-Fi.

Access mock location

Allows an application to create mock location providers for testing.

Add voicemail

Allows an application to add voicemails into the system.

Answer phonecalls

Allows the app to answer an incoming phone call.

Authenticate accounts

Allows an application to act as an AccountAuthenticator for the AccountManager.

Body sensors

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

Call phone

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

Camera

Required to be able to access the camera device.

Continue a call started in another app

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.

Get accounts

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

Manage accounts

Allows an application to manage the list of accounts in the AccountManager.

Process outgoing calls

Allows an application to monitor, modify, or abort outgoing calls.

Read calendar

Allows an application to read the user calendar data.

Read call log

Allows an application to read the user call log.

Read contacts

Allows an application to read the user contacts data.

Read external storage

Allows an application to read from external storage.

Read history bookmarks

Allows an application to read (but not write) the user browsing history and bookmarks.

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.

Read phone state

Allows read only access to phone state.

Read profile

Allows an application to read the user personal profile data.

Read SMS

Allows an application to read SMS messages.

Read social stream

Allows an application to read from the user social stream.

Read user dictionary

Allows an application to read the user dictionary.

Receive boot completed

Allows an application to receive the ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting.

Receive mms

Allows an application to monitor incoming MMS messages, to record or perform processing on them.

Receive sms

Allows an application to monitor incoming SMS messages, to record or perform processing on them.

Receive WAP push

Allows an application to monitor incoming WAP push messages.

Record audio

Allows an application to record audio.

Send SMS

Allows an application to send SMS messages.

Subscribed feeds write

Allows an application to allow write the subscribed feeds ContentProvider.

Uninstall shortcut

Don't use this permission in your app.

This permission is no longer supported.

Use credentials

Allows an application to request authtokens from the AccountManager.

Use SIP

Allows an application to use SIP service.

Write calendar

Allows an application to write (but not read) the user calendar data.

Write call log

Allows an application to write (but not read) the user contacts data.

Write contacts

Allows an application to write (but not read) the user contacts data.

Write external storage

Allows an application to write to external storage.

Write history bookmarks

Allows an application to write (but not read) the user browsing history and bookmarks.

Write profile

Allows an application to write (but not read) the user personal profile data.

Write SMS

Allows an application to write SMS messages.

Write social stream

Allows an application to write (but not read) the user social stream data.

The documentation in the Description column of the table above is licensed under Apache 2.0. Copyright © Android Open Source Project.

Signature Uses Permissions

The following uses permissions require a matching certificate.

Permission Description</center>

Bind accessibility service

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

Bind autofill service

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

Bind call screening service

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

Bind carrier messaging service

This constant was deprecated in API level 23.

Use BIND_CARRIER_SERVICES instead.

Bind carrier service

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.

Bind chooser target service

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

Bind condition provider service

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

Bind device admin

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

Bind dream service

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

Bind in-call service

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

Bind input method

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

Bind MIDI device service

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

Bind NFC service

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

Bind notification listener service

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

Bind print service

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

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.

Bind remoteviews

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

Bind telecom connection service

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

Bind text service

Must be required by a TextService.

Bind TV input

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

Bind visual voicemail service

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

Bind voice interaction

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

Bind VPN service

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

Bind VR listener service

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

Bind wallpaper

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

Clear app cache

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

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.

Read voicemail

Allows an application to read voicemails in the system.

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.

System alert window

Allows an application to open windows using the type TYPE_SYSTEM_ALERT, shown on top of all other applications.

Write settings

Allows an application to read or write the system settings.

Write voicemail

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

The documentation in the Description column of the table above is licensed under Apache 2.0. Copyright © Android Open Source Project.

See Also

Personal tools
In other languages
Previous Versions
Assistance