Android文档说: - 每个Android应用都在限制访问的沙箱中运行。如果应用需要在其自己的沙箱之外使用资源或信息,则应用必须请求相应的权限。
如果应用使用自己的受限访问沙箱,则可能位于内部存储或外部存储上。它可以访问沙箱文件夹。
它工作很多次,但有时我看到它不起作用,我不确定它的错误或其他。
05-05 15:48:51.832 W/ContextImpl(18430): Failed to ensure /storage/7B5C-1A0D/Android/data/com.facebook.appmanager/files/Download: java.lang.SecurityException: Invalid mkdirs path: /storage/7B5C-1A0D/Android/data/com.facebook.appmanager/files/Download
05-05 15:48:51.942 D/EnterpriseController( 3149): netId is 0
05-05 15:48:51.942 D/Netd ( 3149): getNetworkForDns: using netid 502 for uid 10095
05-05 15:48:52.672 W/ContextImpl(18430): Failed to ensure /storage/7B5C-1A0D/Android/data/com.facebook.appmanager/files/Download: java.lang.SecurityException: Invalid mkdirs path: /storage/7B5C-1A0D/Android/data/com.facebook.appmanager/files/Download
它出错"无法确保/storage/7B5C-1A0D/Android/data/com.facebook.appmanager/files/Download"
看起来即使访问自己的沙盒文件夹的应用也需要获得权限。不确定发生了什么。
我是三星S7型号 - SM-G930FD Android版 - 6.0.1版本2016年4月1日
答案 0 :(得分:0)
最后发现它在三星S7 Marshmallow Android版本中的错误 - 6.0.1构建于2016年4月1日
当SD卡安装时,它会发送具有以下详细信息的意图
{
"compilerOptions": {
"target": "ES5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"outDir": "./app"
},
"filesGlob": [
"./dev/**/*.ts",
"!./node_modules/**/*.ts"
],
"exclude": [
"node_modules",
"typings"
]
}
此意图具有装载路径file:/// storage / 5663-DC48
当应用尝试调用系统API以获取应用沙盒文件夹
时Intent { act=android.intent.action.MEDIA_MOUNTED dat=file:///storage/5663-DC48 flg=0x4000010 cmp=com.bluechipsys.itraffic.hcm/.CardReceiver bqHint=4 VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} (has extras) }
它得到关注"未能确保"错误
File fileList2[] = testService.getApplicationContext().getExternalFilesDirs(Environment.DIRECTORY_DOWNLOADS);
新的SD卡安装路径是/ storage / 5663-DC48但仍然是getExternalFilesDirs正在访问旧路径,即/ storage / A792-4DD8
未来发布可能会有此修复