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
。
Public methods |
|
---|---|
String |
getMountedObbPath(String rawPath) 检查不透明二进制Blob(OBB)文件的已安装路径。 |
StorageVolume |
getPrimaryStorageVolume() 将可用的主要共享/外部存储卷返回给当前用户。 |
StorageVolume |
getStorageVolume(File file) 返回包含给定文件的 |
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
|
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 |
StorageVolume getPrimaryStorageVolume ()
将可用的主要共享/外部存储卷返回给当前用户。 该卷是由getExternalStorageDirectory()
和getExternalFilesDir(String)
返回的相同存储设备。
Returns | |
---|---|
StorageVolume |
StorageVolume getStorageVolume (File file)
返回包含给定文件的 null
如果没有则返回 StorageVolume
。
Parameters | |
---|---|
file |
File
|
Returns | |
---|---|
StorageVolume |
List<StorageVolume> getStorageVolumes ()
返回当前用户可用的共享/外部存储卷列表。 这包括主共享存储设备和任何连接的外部卷,包括SD卡和USB驱动器。
Returns | |
---|---|
List<StorageVolume> |
boolean isEncrypted (File file)
如果存储在或位于给定路径下的数据在静止时将被加密,则返回。 这可以帮助应用程序避免双重加密数据的开销。
Parameters | |
---|---|
file |
File
|
Returns | |
---|---|
boolean |
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 |
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 |
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 |