首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 6.0: SD卡目录创建失败,尽管有权限

Android 6.0引入了运行时权限机制,对于一些敏感的权限,如读写外部存储(SD卡)权限,需要在运行时动态申请。如果在应用中没有正确处理权限申请逻辑,可能会导致SD卡目录创建失败的问题,即使应用已经被授予了相应的权限。

解决这个问题的方法是在应用中正确处理权限申请逻辑。以下是一般的解决步骤:

  1. 在AndroidManifest.xml文件中添加权限声明,确保已经声明了读写外部存储的权限:
代码语言:txt
复制
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  1. 在代码中检查是否已经被授予了读写外部存储的权限:
代码语言:txt
复制
if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE)
        != PackageManager.PERMISSION_GRANTED) {
    // 如果没有权限,则动态申请权限
    ActivityCompat.requestPermissions(activity,
            new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
            REQUEST_CODE);
} else {
    // 如果已经有权限,则进行SD卡目录创建等操作
    // ...
}
  1. 处理权限申请结果,在Activity的onRequestPermissionsResult方法中处理权限申请结果:
代码语言:txt
复制
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    if (requestCode == REQUEST_CODE) {
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            // 权限申请成功,进行SD卡目录创建等操作
            // ...
        } else {
            // 权限申请被拒绝,需要给出相应的提示或处理逻辑
            // ...
        }
    }
}

通过正确处理权限申请逻辑,可以确保在Android 6.0及以上版本中,应用能够正确创建SD卡目录。

关于Android开发、权限申请和SD卡目录创建等相关知识,可以参考腾讯云的文档和产品:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

摘要 今天开发中遇到一个问题,项目无法在Android6.0设备的SD创建目录,在Android6.0以下的移动设备测试了5.0 、4.3的设备,均正常,但是在Android6.0却不正常。...经过排查,执行下列代码无法在6.0的设备上面创建目录 File dir = new File(DbConfig.BASE_PATH); if (!...主要改变: 系统设置中可以对 APP 各个权限单独控制权限根据内容进行分组了 普通权限还是在安装时授权,其他权限在运行时系统弹窗授权,并且要解析使用这个权限的目的 对于开发者来说,需要小心处理权限相关的问题...在使用某个功能的时候,需要总是判断是否权限,并且通过合适的方式请求用户授权。...dir.exists()) { dir.mkdirs(); } } } 以上这篇Android 6.0 无法在SD创建目录的方法就是小编分享给大家的全部内容了,希望能给大家一个参考。

1.1K20

获取Android应用专属缓存存储目录的实例

……请往下看 SD缓存目录 当应用需要将图片或者文件缓存到SD中时要去申请创建目录下面几种途径 我们可以通过API调用应用专属目录: // /storage/emulated/0/Android...SD的读写权限,所以6.0及以上系统使用时也不需要动态申请读写权限 使用注意事项 当存储比较大的文件时,如图片等文件存储在SD对应的目录下 应用的内存缓存目录只有应用本身能对其进行读写操作,外部应用不行...,如相机应用 (内存目录读写权限:rwxr-x–x,SD缓存目录读写权限:rwxrwx—) 即使是通过自定义路径得到的上述目录,在系统版本大于等于4.4时也不需要申请SD读写权限 API使用及方法封装.../** * 获取应用专属缓存目录 * android 4.4及以上系统不需要申请SD读写权限 * 因此也不用考虑6.0系统动态申请SD读写权限问题,切随应用被卸载后自动清空 不会污染用户存储空间...* @param context 上下文 * @param type 文件夹类型 可以为空,为空则返回API得到的一级目录 * @return 缓存文件夹 如果没有SDSD问题则返回内存缓存目录

2.4K30

Android 权限机制与适配经验

举个例子,控制手机震动的权限对于用户并没有什么危害,只要开发者声明了这个权限,安装后就可以一直被授权,也不能被回收,但是,像读取sd数据这类权限,很显然就是危险权限了,APP必须向用户申请这个权限。...举个例子,读sd和写sd,这两个权限通常都是成对声明和使用的,因此,它们被分为一组,而且,只要我们获取了这个权限组里面的任意一个权限,就可以获取整个权限组的权限。...应用启动时:我们在梳理的时候发现,有些权限(读取设备信息,读写sd等)并不是由用户或者特性触发的,而是网络免流,登录安全,日志系统这些底层逻辑无时不刻触发的。对于这些权限,就比较纠结了。...但是需要注意的是,一开始就申请授权也不要冷冰冰地直接拉起系统弹窗授权,建议先用APP自己的弹窗向用户礼貌地说明为什么需要这几个权限,比如,读取不到设备信息无法联通免流,无法保证登录安全,读取不到SD无法播放歌曲等...四、Android权限机制“乱象” 这里要说的乱象,其实是和Android严重的碎片化一定的关系。

2.7K10

【错误记录】Android 分区存储下的 SD 应用专属外部存储空间目录访问 ( 需手动创建应用专属外部存储空间目录 )

文章目录 一、报错信息 二、解决方案 一、报错信息 ---- 开发时 , 需要向外置 SD 中拷贝一些文件 , 应用读取这些文件 , 进行相关配置 ; 但是 Android 系统 , 并不会主动为应用创建文件..., 外置 SD 的应用专属外部存储空间目录 , 需要开发者自己创建 ; 当前的包名是 com.example.filepath ; android { defaultConfig {...applicationId "com.example.filepath" } } 在 SD 目录Android\data 目录下 , 并没有 com.example.filepath 目录..., 说明 Android 系统并不是自动为每个应用都创建一个应用专属外部存储空间目录 ; 二、解决方案 ---- 在应用中 , 获取 应用专属外部存储空间目录 下的 cache 目录 , 如果没有创建目录...} } } 运行后 , 自动创建目录 ; 创建目录 ;

59410

Android7.0后FileProvider升级安装包导致FileUriExposedException的异常

最近在鼓捣应用升级时遇到了安装失败的问题,抛出了“apk exposed beyond app through Intent.getData()”异常,网上一顿谷歌百度后晓得了,是谷歌在Android7.0...fileerrorurl.png 出问题就开始解决吧 1.第一步当然你要访问文件是要权限的,这个在Android6.0后可要动态授权哦,这里不要忘了android.permission.REQUEST_INSTALL_PACKAGES...--外部存储又分为SD和扩展内存,此处外部存储空间对应为内置SD内存--> 表示应用程序内部SD存储目录下的 cache/ 目录,共享的完整路径为/storage/emulated/0/Android/data/com.bo.view...name 属性告诉 FileProvider 为共享路径创建一个别名为 apk 的路径字段,可任意。

2.4K31

Android6.0之后的权限机制对App开发的影响

但是6.0引入了新的运行时权限管理机制,即使开发者实现已经声明App的权限Android在App初次启动之时,仍会提示用户是否允许该App开启相关功能。...下面逐个说明一下Android6.0权限管理和休眠模式给App开发带来的影响,注意这些影响可对照《Android Studio开发实战:从零基础到App上线》一书的相应章节: 1、App的SD访问权限可能会被用户关闭...,导致App无法正常读写SD。...这点影响《Android Studio开发实战:从零基础到App上线》一书第4章的“4.3 SD文件操作”和“4.5 实战项目:购物车”。...如果没有打开定位功能,即使App授予了wifi权限,getScanResults方法返回的wifi列表仍然是空的。 点此查看Android开发笔记的完整目录

80520

常用控件之ImageView的使用(一)

加载SD中的图片 在上述中,只是简单的介绍加载资源文件中的图片以及ImageView的一些基本属性,接下来,我们为大家讲解如何加载SD中的图片,并且我们考虑到部分小伙伴对Android很感兴趣,但是都是使用自己的手机来进行调试...首先,我们开发者要知道,从Android 6.0(API 23)开始,对系统权限做了很大的改变。...从6.0开始,一些敏感权限权限主要分为normal、dangerous、signature和signatureOrSystem四个等级,常规情况下我们只需要了解前两种,即正常权限和危险权限。)...版本以上的手机,需要动态申请权限 //而Android6.0以下的手机,只需在AndroidManifest.xml中写入权限就可以 if (Build.VERSION.SDK_INT...//SD写入权限 Manifest.permission.WRITE_EXTERNAL_STORAGE, //SD读取权限

1.6K20

App磁盘沙盒工具实践

目录介绍 01.磁盘沙盒的概述 1.1 项目背景说明 1.2 沙盒作用 1.3 设计目标 02.Android存储概念 2.1 存储划分介绍 2.2 机身内部存储 2.3 机身外部存储 2.4 SD外部存储...App卸载的时候,相应的app创建的文件也会被删除。 SD外部存储 放到sd库中目录下文件,外部开放的文件,可以查看。...返回的数组两个元素,一个是自带外部存储存储,另一个是插入的SD。 2.5 总结和梳理下 Android存储三种:手机内部存储、手机自带外部存储、SD扩展外部存储等。.../files return fileInfos; } ``` 4.3 不同版本访问权限 Android 6.0 之前访问方式 Android 6.0 之前是无需申请动态权限的,在AndroidManifest.xml...4.5 10和11权限说明 Android10权限改变 比如能够直接在/sdcard/目录创建目录/文件。可以看出/sdcard/目录下,如淘宝、qq、qq浏览器、微博、支付宝等都自己建了目录

1.6K30

AndroidP升级之路

一、升级到Target23,兼容Android6.0 问题:敏感权限需要动态申请,不会安装时自动授权。...· 如果设备运行的是 Android 6.0 或更高版本,或者应用的目标 SDK 为 23 或更高:应用必须在清单中列出权限,并且它必须在运行时请求其需要的每项危险权限。...简单来说就是,如果应用需要访问自己/sdcard/Android/data/包名/ Xxx,不需要申请会自动获得。但是访问本应用以外的SD目录就需要。...一、升级到Target23,兼容Android6.0 问题:敏感权限需要动态申请,不会安装时自动授权。...简单来说就是,如果应用需要访问自己/sdcard/Android/data/包名/ Xxx,不需要申请会自动获得。但是访问本应用以外的SD目录就需要。

1.2K31

保存文件到手机内存

当然可以问 android 为什么要允许读写 SD 上任意目录,个人觉得这是历史问题,如果现在禁止了,估计一大堆读写 SD 的应用程序会出现兼容性问题,为了保证这种兼容性,感觉 android 不会将读写...知乎:为什么 Android 4.4 KitKat 限制第三方应用的 SD 读写权限?...这样的规定意味着应用程序只能对 SD 的指定目录进行读写,不能读写任意目录。相当于 Google 出手对 SD 目录结构进行了规范。...之前 android 不限制目录,所以各种应用就随意的在 SD 上建一个目录。然后 SD 上的目录到处都是,用户对这种现象早就深恶痛绝了!如果 Google 对这件事情下狠手,只能说是大快人心。...SD ,应用程序可以随意读写: getExternalFilesDir(null); 3,SD 公共目录,这些目录仍然可以访问,不受权限限制: Environment.getExternalStoragePublicDirectory

94940

Android Studio开发实战 从零基础到App上线》第一版的资源下载和内容勘误

: 1、Android Studio 2.3适配的Gradle版本为3.3,可是安装包自带的Gradle版本却是3.2,造成项目编译失败。...此外,Android6.0之后引入了新的权限管理和休眠模式,也对部分功能的开发造成一定影响。...4、对于Android6.0权限管理和休眠模式造成的影响,可参见博文《Android6.0之后的权限机制对App开发的影响》。...13、第598页“15.2.2  微信分享”的第一段话中, “尽管微信与QQ虽然都是腾讯公司开发”,这里的“尽管”和“虽然”表达重复了,要改为“尽管微信与QQ都是腾讯公司开发”。...14、第639页“16.5.1  设计思路”一节的第一段话中, “如果在SK找到图片”,这里的“SK”要改为“SD”。

1.6K20

Android 性能优化】应用启动优化 ( 方法追踪代码模板 | 示例项目 | SD 访问权限 | 示例代码 | 获取 Trace 文件 | Android Studio 查看文件)

文章目录 一、 方法追踪代码模板 二、 追踪 Launch 页面的 onCreate 方法执行情况 1. 示例项目 2. SD 访问权限问题 ( 动态权限申请 ) 3....MainActivity onCreate 方法追踪及动态权限申请 三、 查看 SD 目录的 trace 文件 四、 Android Studio 中分析该 Trace 文件 一、 方法追踪代码模板...SD 的访问权限 ; 3....静态声明权限 : 在 AndroidManifest.xml 文件中添加 SD 的访问权限 : 最后两个是 SD 访问权限 ; <!..., 该方法追踪文件就会在 SD 目录生成 ; 回顾下存放方法追踪信息的文件创建过程 , 将 Trace 信息存储到了 SD 目录的 Method_Trace 文件中 ; // ★ 1.

2.5K30
领券