美文网首页
安卓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