今天遇到一个问题,在用OkHttpUtils 进行下载的时候,在android6.0以上会出现无法存储的问题。
后来发现是因为权限问题,在应用安装之前,会出现一个选择权限的页面,之前没有选择存储权限,所以无法存储。
Android 6.0也已经出来有一段时间了,其中的权限模式从一开始的全部列出授予,到后来的运行时动态申请,这对开发者来说是一个重要的变化。
但是因为不能保证用户每次自己都手动选择存储,所以需要应用帮用户进行SDCARD存储。
首先检查一下你的项目中 targetSdkVersion,如果是 23及以上,则必须适配新的权限模式;如果是 23以下,则还是统一在安装时全部申请权限。
我的targetSdkVersion是23.
尝试解决方法一:
Android6.0权限适配之WRITE_EXTERNAL_STORAGE(SD卡写入)
这样的话,虽然是看不到存储权限,但是也无法进行存储了。
尝试方法二:
android培训【01-06】Android 6.0 运行时权限处理
这个帖子的方法是可以在应用中,当探测到存储权限没有打开,给用户弹窗,让用户选择是否允许的。
这篇帖子关于运行时权限的讲解还是非常清楚明白的。