背景
最近公司在整改权限申请问题。之前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目录。
网友评论