我想将下载的扩展文件直接保存在数据/数据(内部存储)上。将获得帮助
问问题
1537 次
1 回答
2
不可以。您的扩展文件已下载到 sdcard/Android/obb 文件夹中,您需要检索它们并解压缩以进一步使用这里是一些获取扩展文件的代码
私有最终静态字符串 EXP_PATH = "/Android/obb/";
static String[] getAPKExpansionFiles(Context ctx, int mainVersion,
int patchVersion) {
String packageName = ctx.getPackageName();
Vector<String> ret = new Vector<String>();
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
// Build the full path to the app's expansion files
File root = Environment.getExternalStorageDirectory();
File expPath = new File(root.toString() + EXP_PATH + packageName);
// Check that expansion file path exists
if (expPath.exists()) {
if (mainVersion > 0) {
String strMainPath = expPath + File.separator + "main."
+ mainVersion + "." + packageName + ".obb";
File main = new File(strMainPath);
if (main.isFile()) {
ret.add(strMainPath);
}
}
if (patchVersion > 0) {
String strPatchPath = expPath + File.separator + "patch."
+ mainVersion + "." + packageName + ".obb";
File main = new File(strPatchPath);
if (main.isFile()) {
ret.add(strPatchPath);
}
}
}
}
String[] retArray = new String[ret.size()];
ret.toArray(retArray);
return retArray;
}
String[] test = getAPKExpansionFiles(myContext, 2, 0);
Log.d(LOG_TAG, "total file : " + test.length);
for (int i = 0; i < test.length; i++)
Log.d(LOG_TAG, "filename is : " + test[i]);
if (test.length > 0) {
try {
file = APKExpansionSupport.getResourceZipFile(test)
.getAllEntries();
Log.d(LOG_TAG, "total zip file : " + file.length);
for (int i = 0; i < file.length; i++) {
Log.d(LOG_TAG, "zip filename is : "
+ (file[i].mFileName).split("/")[1]);
File("/mnt/sdcard/Android/obb/one.example.expansion.downloader/main.3.one.example.expansion.downloader.obb/myvideo.mp4");
File desc = new File("/mnt/sdcard/.YourFolder");
ZipHelper.unzip(test[0], desc);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
祝你好运 !
于 2013-02-25T11:43:06.490 回答