但是,如果用户授予应用程序的存储权限,则应用程序无法使用'mkdirs'在'onRequestPermissionsResult'方法中创建目录。

在AndroidManifest.xml我把'uses-permission':

package="com.xample.provasd"

android:versionCode="1"

android:versionName="1.0" >

然后在我处理的许可要求在MainActivity:

public void executeButton(View view){

final String[] PERMISSIONS_STORAGE = { Manifest.permission.WRITE_EXTERNAL_STORAGE };

//Asking request Permissions

ActivityCompat.requestPermissions(this,PERMISSIONS_STORAGE, 9);

}

@Override

public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {

boolean writeAccepted = false;

switch(requestCode){

case 9:

writeAccepted = grantResults[0]==PackageManager.PERMISSION_GRANTED;

break;

}

if(writeAccepted){

String state = Environment.getExternalStorageState();

if (Environment.MEDIA_MOUNTED.equals(state)) {

File dir = new File(Environment.getExternalStorageDirectory()+"/"+"TestFolder");

boolean b = dir.mkdirs();

if(b){

Log.i("TAG", "WOW! "+dir+" created!");

}else{

Log.e("TAG", "OPS! "+dir+" NOT created! To be sure: new dir exist? "+dir.exists());

}

}

}

}

启动模拟器上的应用程序,请求对话框显示:允许执行'onRequestPermissionsResult'正文的权限(writeAccepted=true)但是该文件夹未被创建!

这是出现在logcat中:

I/TAG(9020): Permission ok

I/TAG(9020): Try to create dir: /storage/3143-1CEA/TestFolder

E/TAG(9020): OPS! /storage/3143-1CEA/TestFolder NOT created! To be sure: new dir exist? false

我不明白其中的道理。

请有人能帮助我吗?

谢谢

米尔科

2016-02-13

Mirko

+0

我复制了你的代码,并成功地在Nexus 5,6,9的模拟器上使用SDK Build Tools 23.0.2版运行它。如果您没有使用最新版本的工具,则可以考虑升级以查看它是否有所作为。当我第一次运行使用旧版本创建的模拟器时,即使为模拟器配置了SD卡(hw.sdCard = yes,仿真器的config.ini),也会将“Environment.MEDIA_MOUNTED”返回“移除”。 –

+0

非常感谢您的回复。那么,你的意思是它可能只是一个环境问题? 我正在更新SDK构建工具,我将尝试创建另一个机器实例。 PS。我发现一个可怕的解决方法:获得许可后,文件夹创建失败,但如果我做了一个“强制停止”的应用程序,我再次打开它...它的作品(没有再次请求许可)。 –

+0

编辑:更新SDK版本工具到版本23.0.2不起作用!但是我在真实的6.0设备上测试了代码,并且它可以正常工作。 –

android mkdirs 不起作用,无法在Android 6.0中创建的目录与mkdirs(存储许可OK)相关推荐

  1. android四大组件的作用简书,Android四大组件是什么

    Android四大组件是:活动.服务.广播接收器.内容提供商.它们的英文名称是ACTIVITY.SERVICE.BroadcastReceiver.Content Provider.四个组件分别起到不 ...

  2. Android 8.0 中如何读取内部和外部存储以及外置SDcard

    最近碰到询问我这个读取SDcard的问题, 很久没有看这部分了,所以大致看了一下, 顺便记录一下.在Android 8.0上做了测试. 一般的Android App能读取的存储空间主要有三种: app ...

  3. 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中创建 Python 程序 | 导入 ELFFile 库 | 解析 ELF 文件 )

    文章目录 一.PyCharm 中创建 Python 程序 二.导入 ELFFile 依赖库 三. 解析 ELF 文件 四. 博客源码 一.PyCharm 中创建 Python 程序 在 PyCharm ...

  4. android file isdirectory,android – 为什么我不能在Environment.DIRECTORY_PICTURES中创建一个目录?...

    这是我的代码 File selfieLocation = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES),"Dail ...

  5. 创建raid磁盘阵列的作用_如何在Windows 7中创建软件RAID阵列

    创建raid磁盘阵列的作用 Instead of having a bunch of separate drives to deal with, why not put them together i ...

  6. 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )

    文章目录 一.PyCharm 中进行断点调试 二.ELFFile 实例对象分析 一.PyCharm 中进行断点调试 在上一篇博客 [Android 逆向]使用 Python 代码解析 ELF 文件 ( ...

  7. android mkdirs 不起作用,Android mkdirs()创建一个零字节文件而不是文件夹

    在我的 Android应用程序中,我试图在SD卡上创建以下文件夹: /mnt/sdcard/OSGiComponents/admin/felix-cache/ 这是代码: File cacheDir ...

  8. android mkdirs 不起作用,android设置铃声的时候f.mkdirs()创建不了?解决办法

    当前位置:我的异常网» Android » android设置铃声的时候f.mkdirs()创建不了?解决办法 android设置铃声的时候f.mkdirs()创建不了?解决办法 www.myexce ...

  9. android任务栈的作用,Android 启动模式以及任务栈

    1.Android 主要包含4种启动模式,下面分别介绍四种启动方式的特点: 1)tandard 默认的启动模式,标准模式 每开启一个Activity,就会在栈顶添加一个Activity实例.多次间隔或 ...

最新文章

  1. PCL工程的CMakeList.txt文件书写规范
  2. 53.C#--多线程
  3. 全国大学生智能猫竞速比赛
  4. java svn安装地址_SVN的安装和配置
  5. 【直播课】有三AI直播答疑服务上线,如何学习计算机视觉与准备面试直播限时免费...
  6. boost::safe_numerics模块实现检测到错误表达式评估的测试程序
  7. 成为一个合格的as3程序猿
  8. linux工具:ssh---未完
  9. php 设置excel格式,php 操作excel文件的方法小结
  10. 可搜索的文件? 是的你可以。 选择AsciiDoc的另一个原因
  11. python常见运维脚本_Python运维常用脚本
  12. Mac程序开机启动项优化
  13. Oracle数据库基础学习
  14. cad画流程图的插件_CAD高手教您画工艺流程图设计一些列图
  15. 关于“wuauclt.exe”病毒的清理
  16. html制作一个视频播放器,H5 打造属于自己的视频播放器(HTML 篇)
  17. 在Linux中,如何找回root密码(So easy!!)
  18. maven创建eclipse wtp项目
  19. 云计算与大数据复习题
  20. 1:25万全国地形数据库说明(转)

热门文章

  1. JS正则表达式(全)
  2. 【神经网络】激活函数softmax,sigmoid,tanh,relu总结
  3. prometheus/tsdb压缩流程
  4. PCA特征脸python实现
  5. 解决IDEA maven项目不能创建package和class的问题
  6. 设计模式之九 --- 外观(Facade)模式
  7. 概率密度函数中形状参数和尺度参数的区别
  8. 百度大脑智能写诗与智能春联使用攻略
  9. 阳光动力2号的技术特性
  10. android 裁剪服务,android 系统裁剪