Most visited

Recently visited

Added in API level 9

StorageManager

public class StorageManager
extends Object

java.lang.Object
   ↳ android.os.storage.StorageManager


StorageManager是系统存储服务的接口。 存储管理器处理与存储相关的项目,如不透明二进制Blob(OBB)。

OBB包含一个文件系统,可以在磁盘上进行加密并从应用程序按需安装。 OBB是提供大量二进制资源的一种好方法,无需将它们打包到APK中,因为它们的大小可能为几千兆字节。 但是,由于它们的大小,它们很可能存储在可从所有程序访问的共享存储池中。 系统不保证OBB文件本身的安全性:如果任何程序修改了OBB,则不能保证从该OBB读取将产生预期的输出。

通过调用得到这个类的一个实例 getSystemService(java.lang.String)用的参数 STORAGE_SERVICE

Summary

Public methods

String getMountedObbPath(String rawPath)

检查不透明二进制Blob(OBB)文件的已安装路径。

StorageVolume getPrimaryStorageVolume()

将可用的主要共享/外部存储卷返回给当前用户。

StorageVolume getStorageVolume(File file)

返回包含给定文件的 null如果没有则返回 StorageVolume

List<StorageVolume> getStorageVolumes()

返回当前用户可用的共享/外部存储卷列表。

boolean isEncrypted(File file)

如果存储在或位于给定路径下的数据在静止时将被加密,则返回。

boolean isObbMounted(String rawPath)

检查是否安装了不透明二进制Blob(OBB)。

boolean mountObb(String rawPath, String key, OnObbStateChangeListener listener)

装入不透明二进制Blob(OBB)文件。

boolean unmountObb(String rawPath, boolean force, OnObbStateChangeListener listener)

异步卸载不透明二进制Blob(OBB)文件。

Inherited methods

From class java.lang.Object

Public methods

getMountedObbPath

Added in API level 9
String getMountedObbPath (String rawPath)

检查不透明二进制Blob(OBB)文件的已安装路径。 这将为您提供访问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

getPrimaryStorageVolume

Added in API level 24
StorageVolume getPrimaryStorageVolume ()

将可用的主要共享/外部存储卷返回给当前用户。 该卷是由getExternalStorageDirectory()getExternalFilesDir(String)返回的相同存储设备。

Returns
StorageVolume

getStorageVolume

Added in API level 24
StorageVolume getStorageVolume (File file)

返回包含给定文件的 null如果没有则返回 StorageVolume

Parameters
file File
Returns
StorageVolume

getStorageVolumes

Added in API level 24
List<StorageVolume> getStorageVolumes ()

返回当前用户可用的共享/外部存储卷列表。 这包括主共享存储设备和任何连接的外部卷,包括SD卡和USB驱动器。

Returns
List<StorageVolume>

也可以看看:

isEncrypted

Added in API level 24
boolean isEncrypted (File file)

如果存储在或位于给定路径下的数据在静止时将被加密,则返回。 这可以帮助应用程序避免双重加密数据的开销。

Parameters
file File
Returns
boolean

isObbMounted

Added in API level 9
boolean isObbMounted (String rawPath)

检查是否安装了不透明二进制Blob(OBB)。

Parameters
rawPath String: path to OBB image
Returns
boolean true if OBB is mounted; false if not mounted or on error

mountObb

Added in API level 9
boolean mountObb (String rawPath, 
                String key, 
                OnObbStateChangeListener listener)

装入不透明二进制Blob(OBB)文件。 如果指定了key ,则会将其提供给安装进程以用于OBB中使用的任何加密。

只要StorageManager引用由应用程序持有,OBB就会保持挂载状态。 一旦此参考文献丢失,正在使用的OBB将被卸载。 用此呼叫注册的OnObbStateChangeListener将收到此操作的成功或失败。

注意:您只能挂载文件上的OBB标签与调用程序的UID拥有的包ID相匹配的OBB文件。 也就是说,共享的UID应用程序可以尝试挂载任何共享其UID的其他应用程序的OBB。

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

unmountObb

Added in API level 9
boolean unmountObb (String rawPath, 
                boolean force, 
                OnObbStateChangeListener listener)

异步卸载不透明二进制Blob(OBB)文件。 如果force标志为真,它将force卸载给定OBB(即使是调用应用程序)所需的任何应用程序。

用此呼叫注册的 OnObbStateChangeListener将收到此操作的成功或失败。

注意:您只能挂载文件上的OBB标签与调用程序的UID拥有的包ID相匹配的OBB文件。 也就是说,共享UID应用程序可以访问任何其他共享其UID的应用程序的OBB。

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

Hooray!