StorageVolume Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Information about a shared/external storage volume for a specific user.
[Android.Runtime.Register("android/os/storage/StorageVolume", ApiSince=24, DoNotGenerateAcw=true)]
public sealed class StorageVolume : Java.Lang.Object, Android.OS.IParcelable, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/os/storage/StorageVolume", ApiSince=24, DoNotGenerateAcw=true)>]
type StorageVolume = class
inherit Object
interface IParcelable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Inheritance
- Attributes
- Implements
Remarks
Information about a shared/external storage volume for a specific user.
A device always has one (and one only) primary storage volume, but it could have extra volumes, like SD cards and USB drives. This object represents the logical view of a storage volume for a specific user: different users might have different views for the same physical volume (for example, if the volume is a built-in emulated storage).
The storage volume is not necessarily mounted, applications should use #getState()
to verify its state.
Applications willing to read or write to this storage volume needs to get a permission from the user first, which can be achieved in the following ways:
<ul> <li>To get access to standard directories (like the Environment#DIRECTORY_PICTURES
), they can use the #createAccessIntent(String)
. This is the recommend way, since it provides a simpler API and narrows the access to the given directory (and its descendants). <li>To get access to any directory (and its descendants), they can use the Storage Acess Framework APIs (such as Intent#ACTION_OPEN_DOCUMENT
and Intent#ACTION_OPEN_DOCUMENT_TREE
, although these APIs do not guarantee the user will select this specific volume. <li>To get read and write access to the primary storage volume, applications can declare the android.Manifest.permission#READ_EXTERNAL_STORAGE
and android.Manifest.permission#WRITE_EXTERNAL_STORAGE
permissions respectively, with the latter including the former. This approach is discouraged, since users may be hesitant to grant broad access to all files contained on a storage device. </ul>
It can be obtained through StorageManager#getStorageVolumes()
and StorageManager#getPrimaryStorageVolume()
and also as an extra in some broadcasts (see #EXTRA_STORAGE_VOLUME
).
See Environment#getExternalStorageDirectory()
for more info about shared/external storage semantics.
Java documentation for android.os.storage.StorageVolume
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Fields
ExtraStorageVolume |
Name of the |
Properties
Class |
Returns the runtime class of this |
Creator | |
Directory |
Returns the directory where this volume is currently mounted. |
Handle |
The handle to the underlying Android instance. (Inherited from Object) |
IsEmulated |
Returns true if the volume is emulated. |
IsPrimary |
Returns true if the volume is the primary shared/external storage, which is the volume
backed by |
IsRemovable |
Returns true if the volume is removable. |
JniIdentityHashCode | (Inherited from Object) |
JniPeerMembers | |
MediaStoreVolumeName |
Return the volume name that can be used to interact with this storage
device through |
Owner |
Returns the user that owns this volume |
PeerReference | (Inherited from Object) |
State |
Returns the current state of the volume. |
StorageUuid |
Gets the converted volume UUID. |
ThresholdClass |
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code. (Inherited from Object) |
ThresholdType |
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code. (Inherited from Object) |
Uuid |
Gets the volume UUID, if any. |
Methods
Clone() |
Creates and returns a copy of this object. (Inherited from Object) |
CreateAccessIntent(String) |
Builds an intent to give access to a standard storage directory or entire volume after obtaining the user's approval. |
CreateOpenDocumentTreeIntent() |
Builds an |
DescribeContents() | |
Dispose() | (Inherited from Object) |
Dispose(Boolean) | (Inherited from Object) |
Equals(Object) |
Indicates whether some other object is "equal to" this one. (Inherited from Object) |
GetDescription(Context) |
Returns a user-visible description of the volume. |
GetHashCode() |
Returns a hash code value for the object. (Inherited from Object) |
JavaFinalize() |
Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. (Inherited from Object) |
Notify() |
Wakes up a single thread that is waiting on this object's monitor. (Inherited from Object) |
NotifyAll() |
Wakes up all threads that are waiting on this object's monitor. (Inherited from Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Sets the Handle property. (Inherited from Object) |
ToArray<T>() | (Inherited from Object) |
ToString() |
Returns a string representation of the object. (Inherited from Object) |
UnregisterFromRuntime() | (Inherited from Object) |
Wait() |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>. (Inherited from Object) |
Wait(Int64, Int32) |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed. (Inherited from Object) |
Wait(Int64) |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed. (Inherited from Object) |
WriteToParcel(Parcel, ParcelableWriteFlags) |
Explicit Interface Implementations
IJavaPeerable.Disposed() | (Inherited from Object) |
IJavaPeerable.DisposeUnlessReferenced() | (Inherited from Object) |
IJavaPeerable.Finalized() | (Inherited from Object) |
IJavaPeerable.JniManagedPeerState | (Inherited from Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) | (Inherited from Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) | (Inherited from Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) | (Inherited from Object) |
Extension Methods
JavaCast<TResult>(IJavaObject) |
Performs an Android runtime-checked type conversion. |
JavaCast<TResult>(IJavaObject) | |
GetJniTypeName(IJavaPeerable) |