美文网首页
安卓Q及以上申请存储权限问题

安卓Q及以上申请存储权限问题

作者: 蓝不蓝编程 | 来源:发表于2021-08-02 21:53 被阅读0次

背景

最近公司在整改权限申请问题。之前app启动就申请所有权限,现在国家要求所有厂商整改,只能在需要的时候申请。

存储权限

存储权限的整改还比较麻烦,按照网上说的,不能直接访问文件路径,只能通过MediaStore来操作文件。

 fun writeFile(context: Context, ins: InputStream) {
        val values = ContentValues()
        values.put(MediaStore.Images.Media.DISPLAY_NAME, "image_screenshot.jpg")
        values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg")
        values.put(MediaStore.Images.Media.RELATIVE_PATH, Environment.DIRECTORY_PICTURES)
        val uri = context.contentResolver.insert(
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
            values
        )!!

        val out = context.contentResolver.openOutputStream(uri)!!
        val buffer = ByteArray(1024)
        var len: Int = ins.read(buffer)
        while (len != -1) {
            out.write(buffer, 0, len)
            len = ins.read(buffer)
        }
        out.close()
        ins.close()
    }

但是后来又发现还有个土方法:
还是采用传统的读写文件方式,而且不再需要申请权限,只不过写文件的目录只能是download目录。

相关文章

网友评论

      本文标题:安卓Q及以上申请存储权限问题

      本文链接:https://www.haomeiwen.com/subject/vyxgmltx.html