Certain features in Nutrient need additional permissions, which apps have to declare inside their manifest using `<uses-permission>` elements. Some permissions are required by Nutrient and are defined in the `AndroidManifest.xml` file that comes with the library. Other permissions are optional and can be added to the `AndroidManifest.xml` file of your app if you want to make use of them.

To protect user privacy, starting with Android 6.0 (API 23), users can revoke permissions of apps using the system settings. For dangerous permissions, apps have to perform additional runtime requests for specific permissions, which the user has to manually grant.

Learn more in [the official Android Permissions overview](https://developer.android.com/guide/topics/permissions/overview) guide.

## Camera permission

The [`android.permission.CAMERA`](https://developer.android.com/reference/android/Manifest.permission#CAMERA) permission is optional and is not part of Nutrient’s `AndroidManifest.xml`. It is usually not required to add this permission to an app’s `AndroidManifest.xml` file.

Nutrient allows the creation of stamp annotations from gallery and camera images using [`AnnotationTool.CAMERA`](https://www.nutrient.io/api/android/nutrient/com.pspdfkit.ui.special_mode.controller/-annotation-tool/-c-a-m-e-r-a/index.html). For this, Nutrient will launch an [`Intent`](https://developer.android.com/reference/android/content/Intent) using the [`MediaStore.ACTION_IMAGE_CAPTURE`](https://developer.android.com/reference/android/provider/MediaStore#ACTION_IMAGE_CAPTURE) action, which is used to return an image from either the camera app or a gallery app. As long as this permission is not declared in the app’s manifest, Android will allow the app to launch the intent without any additional permission requests. However, as soon as the app declares [`android.permission.CAMERA`](https://developer.android.com/reference/android/Manifest.permission#CAMERA) in the manifest, Android will require the app to perform a runtime request for this permission on all devices running Android 6.0+. Nutrient will automatically detect if the permission is declared and if a runtime permission request is necessary, and it will request access to the camera upon using the camera tool for adding an annotation.

## External storage permission

Nutrient’s `AndroidManifest.xml` comes with two permission declarations for accessing files on the public external storage. These permissions are:

- [`android.permission.READ_EXTERNAL_STORAGE`](https://developer.android.com/reference/android/Manifest.permission#READ_EXTERNAL_STORAGE)

- [`android.permission.WRITE_EXTERNAL_STORAGE`](https://developer.android.com/reference/android/Manifest.permission#WRITE_EXTERNAL_STORAGE)

External storage permissions are required for direct file access when using file system [`Uri`](http://developer.android.com/reference/android/net/Uri.html)s that point to files on the external storage. Upon opening a document using a [`Uri`](http://developer.android.com/reference/android/net/Uri.html), Nutrient will automatically check if the file resides on the external storage, and it will perform a runtime permission request if necessary.

## Audio recording permission

Creating sound annotations requires that you add the [`android.permission.RECORD_AUDIO`](https://developer.android.com/reference/android/Manifest.permission.html#RECORD_AUDIO) permission to your `AndroidManifest.xml`. This permission is optional and is not part of Nutrient’s `AndroidManifest.xml`.

It is not required to add this permission to your app’s manifest if you don’t want to use `AnnotationTool.SOUND` for creating sound annotations; it will be disabled automatically when the audio recording permission is missing.

`RECORD_AUDIO` is considered a dangerous permission. Nutrient automatically checks if the permission has been granted before recording and performs a runtime permission request if necessary.
---

## Related pages

- [About Memory Usage](/guides/android/memory-and-storage/about-memory-usage.md)
- [Customizing The Page Number](/guides/android/customizing-pdf-pages/customizing-the-page-number.md)
- [Managing data storage and privacy in Android](/guides/android/best-practices/data-storage-and-privacy.md)
- [Framework Size](/guides/android/faq/framework-size.md)
- [Check For Compatibility](/guides/android/faq/check-for-compatibility.md)
- [Remove all Android logging calls that should be ignored in release builds to prevent logs in Logcat.](/guides/android/features/logging.md)
- [Nightly Builds](/guides/android/advanced-integration/nightly-builds.md)
- [Optimize Pdf Documents For Mobile Rendering](/guides/android/miscellaneous/optimize-pdf-documents-for-mobile-rendering.md)
- [Opening Local Files](/guides/android/miscellaneous/opening-local-files.md)
- [Android PDF SDK security](/guides/android/faq/sdk-security.md)
- [Manual Library Integration](/guides/android/advanced-integration/manual-library-integration.md)
- [Third Party Compatibility](/guides/android/miscellaneous/third-party-compatibility.md)
- [Subscription Validation](/guides/android/announcements/subscription-validation.md)
- [Powered By Nutrient](/guides/android/miscellaneous/powered-by-nutrient.md)
- [Unsupported Internal Symbols](/guides/android/announcements/unsupported-internal-symbols.md)

