【发布时间】:2023-03-28 06:10:01
【问题描述】:
我从 JOBB 工具创建了一个加密的 OBB 文件,我正在尝试访问其中的文件,有一些图像“image1.jpg,image2.jpg”等。到目前为止,我能够成功安装它:
public void mountExpansion() {
final StorageManager storageManager = (StorageManager) this.getSystemService(Context.STORAGE_SERVICE);
String packageName = "com.nick.app";
String filePath = Environment.getExternalStorageDirectory()
+ "/Android/obb/" + packageName + "/" + "main."
+ getString(R.string.apk_expansion_version) + "." + packageName + ".obb";
final File mainFile = new File(filePath);
if (mainFile.exists()) {
Log.d("STORAGE", "FILE: " + filePath + " Exists");
} else {
Log.d("STORAGE", "FILE: " + filePath + " DOESNT EXIST");
}
String key = "123456";
if (!storageManager.isObbMounted(mainFile.getAbsolutePath())) {
if (mainFile.exists()) {
if(storageManager.mountObb(mainFile.getAbsolutePath(), key,
new OnObbStateChangeListener() {
@Override
public void onObbStateChange(String path, int state) {
super.onObbStateChange(path, state);
Log.d("PATH = ",path);
Log.d("STATE = ", state+"");
expansionFilePath = storageManager.getMountedObbPath(path);
if (state == OnObbStateChangeListener.MOUNTED) {
expansionFilePath = storageManager
.getMountedObbPath(path);
Log.d("STORAGE","-->MOUNTED");
Log.d("NICK","length()"+mainFile.length());
Log.d("NICK","getAbsolutePath()"+mainFile.getAbsolutePath());
Log.d("NICK","isDirectory()"+mainFile.isDirectory());
}
else {
Log.d("##", "Path: " + path + "; state: " + state);
}
}
}))
{
Log.d("STORAGE_MNT","SUCCESSFULLY QUEUED");
}
else
{
Log.d("STORAGE_MNT","FAILED");
}
} else {
Log.d("STORAGE", "Patch file not found");
}
}
}
在我的日志中,我看到从OnObbStateChangeListener 返回的状态“1”表明加密的 OBB 文件已成功挂载。然而,在这一点上,我不知道如何访问其中的文件并利用它们。例如将它们加载到ImageView 等中。对我在这里缺少的内容有什么建议吗?
【问题讨论】:
标签: android encryption apk-expansion-files