Stay organized with collections
Save and categorize content based on your preferences.
DragAndDropPermissions
class DragAndDropPermissions : Parcelable
DragAndDropPermissions
controls the access permissions for the content URIs associated with a DragEvent
.
Permission are granted when this object is created by Activity.requestDragAndDropPermissions
. Which permissions are granted is defined by the set of flags passed to View.startDragAndDrop
by the app that started the drag operation.
The lifecycle of the permissions is bound to the activity used to call requestDragAndDropPermissions
. The permissions are revoked when this activity is destroyed, or when release()
is called, whichever occurs first.
If you anticipate that your application will receive a large number of drops (e.g. document editor), you should try to call release()
on the obtained permissions as soon as they are no longer required. Permissions can be added to your activity's android.app.Activity#onSaveInstanceState bundle and later retrieved in order to manually release the permissions once they are no longer needed.
Learn more about drag permissions in multi-window mode.
Summary
Inherited constants |
From class Parcelable
Int |
CONTENTS_FILE_DESCRIPTOR
Descriptor bit used with describeContents() : indicates that the Parcelable object's flattened representation includes a file descriptor.
|
Int |
PARCELABLE_WRITE_RETURN_VALUE
Flag for use with writeToParcel : the object being written is a return value, that is the result of a function such as "Parcelable someFunction() ", "void someFunction(out Parcelable) ", or "void someFunction(inout Parcelable) ". Some implementations may want to release resources at this point.
|
|
Public methods |
Int |
|
Unit |
Revoke permissions explicitly.
|
Unit |
|
Public methods
describeContents
fun describeContents(): Int
release
fun release(): Unit
Revoke permissions explicitly.
writeToParcel
fun writeToParcel(
destination: Parcel,
flags: Int
): Unit
Properties
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[],null,["# DragAndDropPermissions\n\nAdded in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)\n\nDragAndDropPermissions\n======================\n\n*** ** * ** ***\n\nKotlin \\|[Java](/reference/android/view/DragAndDropPermissions \"View this page in Java\") \n\n```\nclass DragAndDropPermissions : Parcelable\n```\n\n|---|------------------------------------------|\n| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html) ||\n| ↳ | [android.view.DragAndDropPermissions](#) |\n\n[DragAndDropPermissions](#) controls the access permissions for the content URIs associated with a [DragEvent](/reference/kotlin/android/view/DragEvent).\n\nPermission are granted when this object is created by [Activity.requestDragAndDropPermissions](../app/Activity.html#requestDragAndDropPermissions(android.view.DragEvent)). Which permissions are granted is defined by the set of flags passed to [View.startDragAndDrop](/reference/kotlin/android/view/View#startDragAndDrop(android.content.ClipData,%20android.view.View.DragShadowBuilder,%20kotlin.Any,%20kotlin.Int)) by the app that started the drag operation.\n\nThe lifecycle of the permissions is bound to the activity used to call [requestDragAndDropPermissions](../app/Activity.html#requestDragAndDropPermissions(android.view.DragEvent)). The permissions are revoked when this activity is destroyed, or when [release()](#release()) is called, whichever occurs first.\n\nIf you anticipate that your application will receive a large number of drops (e.g. document editor), you should try to call [release()](#release()) on the obtained permissions as soon as they are no longer required. Permissions can be added to your activity's android.app.Activity#onSaveInstanceState bundle and later retrieved in order to manually release the permissions once they are no longer needed.\n\nLearn more about [drag permissions in multi-window mode](../../guide/topics/ui/drag-drop#DragPermissionsMultiWindow).\n\nSummary\n-------\n\n| Inherited constants ||\n|---|---|\n| From class [Parcelable](../os/Parcelable.html#) |----------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | [CONTENTS_FILE_DESCRIPTOR](../os/Parcelable.html#CONTENTS_FILE_DESCRIPTOR:kotlin.Int) Descriptor bit used with [describeContents()](../os/Parcelable.html#describeContents()): indicates that the Parcelable object's flattened representation includes a file descriptor. \u003cbr /\u003e | | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | [PARCELABLE_WRITE_RETURN_VALUE](../os/Parcelable.html#PARCELABLE_WRITE_RETURN_VALUE:kotlin.Int) Flag for use with [writeToParcel](../os/Parcelable.html#writeToParcel(android.os.Parcel,%20kotlin.Int)): the object being written is a return value, that is the result of a function such as \"`Parcelable someFunction()`\", \"`void someFunction(out Parcelable)`\", or \"`void someFunction(inout Parcelable)`\". Some implementations may want to release resources at this point. \u003cbr /\u003e | ||\n\n| Public methods ||\n|------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | [describeContents](#describeContents())`()` \u003cbr /\u003e |\n| [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [release](#release())`()` Revoke permissions explicitly. |\n| [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [writeToParcel](#writeToParcel(android.os.Parcel,%20kotlin.Int))`(`destination:` `[Parcel](../os/Parcel.html#)`, `flags:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` \u003cbr /\u003e |\n\n| Properties ||\n|---------------------------------------------------------------------------------------------|----------------------------------------------------------|\n| static [Parcelable.Creator](../os/Parcelable.Creator.html#)\\\u003c[DragAndDropPermissions](#)!\\\u003e | [CREATOR](#CREATOR:android.os.Parcelable.Creator) \u003cbr /\u003e |\n\nPublic methods\n--------------\n\n### describeContents\n\nAdded in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) \n\n```\nfun describeContents(): Int\n```\n\n| Return ||\n|----------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either `0` or [android.os.Parcelable#CONTENTS_FILE_DESCRIPTOR](../os/Parcelable.html#CONTENTS_FILE_DESCRIPTOR:kotlin.Int) |\n\n### release\n\nAdded in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) \n\n```\nfun release(): Unit\n```\n\nRevoke permissions explicitly. \n\n### writeToParcel\n\nAdded in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) \n\n```\nfun writeToParcel(\n destination: Parcel, \n flags: Int\n): Unit\n```\n\n| Parameters ||\n|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `dest` | The Parcel in which the object should be written. This value cannot be `null`. |\n| `flags` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): Additional flags about how the object should be written. May be 0 or [PARCELABLE_WRITE_RETURN_VALUE](../os/Parcelable.html#PARCELABLE_WRITE_RETURN_VALUE:kotlin.Int). Value is either `0` or a combination of [android.os.Parcelable#PARCELABLE_WRITE_RETURN_VALUE](../os/Parcelable.html#PARCELABLE_WRITE_RETURN_VALUE:kotlin.Int), and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES |\n\nProperties\n----------\n\n### CREATOR\n\nAdded in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) \n\n```\nstatic val CREATOR: Parcelable.Creator\u003cDragAndDropPermissions!\u003e\n```"]]