Android 保存和读取数据/数据的扩展文件/

Android 保存和读取数据/数据的扩展文件/,android,apk-expansion-files,Android,Apk Expansion Files,我想将下载时的扩展文件直接保存在数据/数据(内部存储)上。将提供帮助。否。您的扩展文件下载在SD卡/Android/obb文件夹中,您需要检索它们并解压缩以供进一步使用 下面是一些获取扩展文件的代码 私有最终静态字符串EXP_PATH=“/Android/obb/” static String[]getAPKExpansionFiles(Context ctx,int mainVersion, int修补程序(版本){ 字符串packageName=ctx.getPackageName(); 向

我想将下载时的扩展文件直接保存在数据/数据(内部存储)上。将提供帮助。

否。您的扩展文件下载在SD卡/Android/obb文件夹中,您需要检索它们并解压缩以供进一步使用 下面是一些获取扩展文件的代码

私有最终静态字符串EXP_PATH=“/Android/obb/”

static String[]getAPKExpansionFiles(Context ctx,int mainVersion,
int修补程序(版本){
字符串packageName=ctx.getPackageName();
向量ret=新向量();
如果(Environment.getExternalStorageState().equals(
环境.媒体(U){
//构建应用程序扩展文件的完整路径
文件root=Environment.getExternalStorageDirectory();
File expPath=新文件(root.toString()+EXP_PATH+packageName);
//检查扩展文件路径是否存在
if(expPath.exists()){
如果(主版本>0){
字符串strMainPath=expPath+File.separator+“main。”
+mainVersion+“+packageName+”.obb”;
File main=新文件(strMainPath);
if(main.isFile()){
ret.add(strMainPath);
}
}
如果(版本>0){
字符串strPatchPath=expPath+File.separator+“补丁。”
+mainVersion+“+packageName+”.obb”;
File main=新文件(strPatchPath);
if(main.isFile()){
ret.add(strPatchPath);
}
}
}
}
String[]retArray=新字符串[ret.size()];
重新排列(重新排列);
返回重新排列;
}
String[]test=getAPKExpansionFiles(myContext,2,0);
Log.d(Log_标签,“总文件:”+test.length);
对于(int i=0;i0){
试一试{
file=apkexpansupport.getResourceZipFile(测试)
.getAllEntries();
Log.d(Log_标签,“总zip文件:”+文件.length);
for(int i=0;i

祝你好运!

事实上,扩展文件并不能为数据提供安全性。因为SD卡上的数据是任何人都可以访问的,这违反了身份验证规则。是@Goofy我能帮你什么忙吗?是的@Goofy你可以邀请me@SanketPandya你能在这里和我一起吗?@SanketPandya你能在那里和我一起吗?
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();
            }