无法确保带有棉花糖设备的外置SD卡上的应用程序沙盒文件夹

时间:2016-05-06 12:57:47

标签: android facebook

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日

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

未来发布可能会有此修复