public
class
StorageManager
extends Object
java.lang.Object | |
↳ | android.os.storage.StorageManager |
StorageManager is the interface to the systems storage service. The storage manager handles storage-related items such as Opaque Binary Blobs (OBBs).
OBBs contain a filesystem that maybe be encrypted on disk and mounted on-demand from an application. OBBs are a good way of providing large amounts of binary assets without packaging them into APKs as they may be multiple gigabytes in size. However, due to their size, they're most likely stored in a shared storage pool accessible from all programs. The system does not guarantee the security of the OBB file itself: if any program modifies the OBB, there is no guarantee that a read from that OBB will produce the expected output.
Get an instance of this class by calling
getSystemService(java.lang.String)
with an
argument of STORAGE_SERVICE
.
Public methods | |
---|---|
String
|
getMountedObbPath(String rawPath)
Check the mounted path of an Opaque Binary Blob (OBB) file. |
StorageVolume
|
getPrimaryStorageVolume()
Return the primary shared/external storage volume available to the current user. |
StorageVolume
|
getStorageVolume(File file)
Return the |
List<StorageVolume>
|
getStorageVolumes()
Return the list of shared/external storage volumes available to the current user. |
boolean
|
isEncrypted(File file)
Return if data stored at or under the given path will be encrypted while at rest. |
boolean
|
isObbMounted(String rawPath)
Check whether an Opaque Binary Blob (OBB) is mounted or not. |
boolean
|
mountObb(String rawPath, String key, OnObbStateChangeListener listener)
Mount an Opaque Binary Blob (OBB) file. |
boolean
|
unmountObb(String rawPath, boolean force, OnObbStateChangeListener listener)
Unmount an Opaque Binary Blob (OBB) file asynchronously. |
Inherited methods | |
---|---|
From
class
java.lang.Object
|
String getMountedObbPath (String rawPath)
Check the mounted path of an Opaque Binary Blob (OBB) file. This will give you the path to where you can obtain access to the internals of the OBB.
Parameters | |
---|---|
rawPath |
String :
path to OBB image |
Returns | |
---|---|
String |
absolute path to mounted OBB image data or null if
not mounted or exception encountered trying to read status
|
StorageVolume getPrimaryStorageVolume ()
Return the primary shared/external storage volume available to the
current user. This volume is the same storage device returned by
getExternalStorageDirectory()
and
getExternalFilesDir(String)
.
Returns | |
---|---|
StorageVolume |
StorageVolume getStorageVolume (File file)
Return the StorageVolume
that contains the given file, or null
if none.
Parameters | |
---|---|
file |
File
|
Returns | |
---|---|
StorageVolume |
List<StorageVolume> getStorageVolumes ()
Return the list of shared/external storage volumes available to the current user. This includes both the primary shared storage device and any attached external volumes including SD cards and USB drives.
Returns | |
---|---|
List<StorageVolume> |
boolean isEncrypted (File file)
Return if data stored at or under the given path will be encrypted while at rest. This can help apps avoid the overhead of double-encrypting data.
Parameters | |
---|---|
file |
File
|
Returns | |
---|---|
boolean |
boolean isObbMounted (String rawPath)
Check whether an Opaque Binary Blob (OBB) is mounted or not.
Parameters | |
---|---|
rawPath |
String :
path to OBB image |
Returns | |
---|---|
boolean |
true if OBB is mounted; false if not mounted or on error |
boolean mountObb (String rawPath, String key, OnObbStateChangeListener listener)
Mount an Opaque Binary Blob (OBB) file. If a key
is
specified, it is supplied to the mounting process to be used in any
encryption used in the OBB.
The OBB will remain mounted for as long as the StorageManager reference
is held by the application. As soon as this reference is lost, the OBBs
in use will be unmounted. The OnObbStateChangeListener
registered
with this call will receive the success or failure of this operation.
Note: you can only mount OBB files for which the OBB tag on the file matches a package ID that is owned by the calling program's UID. That is, shared UID applications can attempt to mount any other application's OBB that shares its UID.
Parameters | |
---|---|
rawPath |
String :
the path to the OBB file |
key |
String :
secret used to encrypt the OBB; may be null if no
encryption was used on the OBB. |
listener |
OnObbStateChangeListener :
will receive the success or failure of the operation |
Returns | |
---|---|
boolean |
whether the mount call was successfully queued or not |
boolean unmountObb (String rawPath, boolean force, OnObbStateChangeListener listener)
Unmount an Opaque Binary Blob (OBB) file asynchronously. If the
force
flag is true, it will kill any application needed to
unmount the given OBB (even the calling application).
The OnObbStateChangeListener
registered with this call will
receive the success or failure of this operation.
Note: you can only mount OBB files for which the OBB tag on the file matches a package ID that is owned by the calling program's UID. That is, shared UID applications can obtain access to any other application's OBB that shares its UID.
Parameters | |
---|---|
rawPath |
String :
path to the OBB file |
force |
boolean :
whether to kill any programs using this in order to unmount
it |
listener |
OnObbStateChangeListener :
will receive the success or failure of the operation |
Returns | |
---|---|
boolean |
whether the unmount call was successfully queued or not |