您好,目前调用SDK初始化时FLAG如果指定了SFSDKFlags.FLAGS_ENABLE_FILE_ISOLATION,且集成SDK的APP在应用中心授权给用户时,集成SDK的应用就会启用文件加密隔离功能,APP下载的文件默认都会重定向到沙箱路径并加密存储,此时文件存放路径上层是无需关注的的,即使知道路径,文件也是加密的。针对您说的导出或外发有以下两种方案:
1. 如果您不需要文件加密隔离功能,只需要初始化的时候不指定FLAGS_ENABLE_FILE_ISOLATION即可,需要注意的是之前启用加密产生的文件在关闭加密后是无法正常查看的,极端情况需要清除数据才能正常,如果项目已经上线不建议做这个变更
2. 指定文件加密隔离白名单目录,通过初始化时在extra中指定白名单路径,指定后,将需要外发的文件都存放到白名单路径内,白名单路径下的文件是不做文件加密隔离的。
具体使用如下:
int sdkFlags = SFSDKFlags.FLAGS_HOST_APPLICATION; //表明是单应用或者是主应用
sdkFlags |= SFSDKFlags.FLAGS_VPN_MODE_TCP; //表明使用VPN功能中的TCP模式
sdkFlags |= SFSDKFlags.FLAGS_ENABLE_FILE_ISOLATION;
Map<SFSDKExtras, String> extra = new HashMap<>();
String whiteList = "{
"whiteList": [
"/sdcard/Android/data/com.demo/files/testData/",
"/sdcard/Android/data/com.demo/files/testData/"
]
}";
// 添加文件加密隔离白名单, 白名单是上述格式的json数组,json数组里面填写需要加白的绝对路径即可
extra.put(SFSDKExtras.EXTRA_KEY_FILE_ISOLATION, whiteList);
SFUemSDK.getInstance().initSDK(this, sdkMode,sdkFlags,extra);
|