Android 6.0 无法在SD卡创建目录的方法

所属分类: 软件编程 / Android 阅读数: 101
收藏 0 赞 0 分享

摘要

今天开发中遇到一个问题,项目无法在Android6.0设备的SD卡创建目录,在Android6.0以下的移动设备测试了5.0 、4.3的设备,均正常,但是在Android6.0却不正常。

经过排查,执行下列代码无法在6.0的设备上面创建目录

File dir = new File(DbConfig.BASE_PATH);
if (!dir.exists()) {
 dir.mkdirs();
}

衍生知识

2015年5月29日中Google I/O开发者大会,Google 发布了 Android M,并命名为“棉花糖”(Marshmallow),对于开发者来说, Android 6.0(API 23)给开发者带来的一些变化。

权限管理是 Android M 最大的改变

变化描述:

权限管理更加精细,并且由以前的安装时静态授权,改为现在的运行时动态授权。

大家对 Android 的权限吐槽已久,Android 应该能极大的改善这方面的问题。

主要改变有:

系统设置中可以对 APP 各个权限单独控制权限根据内容进行分组了

普通权限还是在安装时授权,其他权限在运行时系统弹窗授权,并且要解析使用这个权限的目的

对于开发者来说,需要小心处理权限相关的问题。在使用某个功能的时候,需要总是判断是否有改权限,并且通过合适的方式请求用户授权。

现在描述一下处理的解决方案

1 发起读写设备存储空间的权限

ActivityCompat.requestPermissions(AppStartActivity.this,new String[]{ android.Manifest.permission.WRITE_EXTERNAL_STORAGE},1);

2 写权限请求回掉函数

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
 boolean writeAccepted = false;
 switch (requestCode) {
  case 1:
   writeAccepted = grantResults[0] == PackageManager.PERMISSION_GRANTED;
   break;
 }
}

3 执行创建目录代码

if (writeAccepted) {
  String state = Environment.getExternalStorageState();
  if (Environment.MEDIA_MOUNTED.equals(state)) {
   File dir = new File(DbConfig.BASE_PATH);
   if (!dir.exists()) {
   dir.mkdirs();
   }
  }
 }

以上这篇Android 6.0 无法在SD卡创建目录的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Android样式和主题之选择器的实例讲解

今天小编就为大家分享一篇关于Android样式和主题之选择器的实例讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Android应用动态修改主题的方法示例

今天小编就为大家分享一篇关于Android应用动态修改主题的方法示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Flutter 网络请求框架封装详解

这篇文章主要介绍了Flutter 网络请求框架封装详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Flutter倒计时/计时器的实现代码

这篇文章主要介绍了Flutter倒计时/计时器的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Android使用google breakpad捕获分析native cash

这篇文章主要介绍了Android使用google breakpad捕获分析native cash 的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Flutter WebView与JS互相调用简易指南

这篇文章主要介绍了详解Flutter WebView与JS互相调用简易指南,分为JS调用Flutter和Flutter调用JS,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Android开发实现ListView和adapter配合显示图片和文字列表功能示例

这篇文章主要介绍了Android开发实现ListView和adapter配合显示图片和文字列表功能,涉及Android使用ListView结合adapter适配器实现图文显示功能相关的布局、解析、权限控制等操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Android文字基线Baseline算法的使用讲解

今天小编就为大家分享一篇关于Android文字基线Baseline算法的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Flutter自定义实现神奇动效的卡片切换视图的示例代码

这篇文章主要介绍了Flutter自定义实现神奇动效的卡片切换视图的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Android实现自定义滑动刻度尺方法示例

这篇文章主要给大家介绍了关于Android实现自定义滑动刻度尺的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享
查看更多