先打开文件管理器
选择目录
fun saveFile(view: View) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
intent.addCategory(Intent.CATEGORY_DEFAULT)
startActivityForResult(intent, 0)
}
}
然后是onActivityResult
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 0) {
if (data != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
val uri = data.data
val docUri = DocumentsContract.buildDocumentUriUsingTree(
uri,
DocumentsContract.getTreeDocumentId(uri)
)
val newDirectory = DocumentsContract.createDocument(
contentResolver,
docUri,
Document.MIME_TYPE_DIR,
"dicName"
)
val file = DocumentFile.fromTreeUri(this, docUri)
if (file != null) {
val new = file.createFile("text/json", "hello.json")
val os = contentResolver.openOutputStream(new?.uri!!)
val str = "abcabcabc"
val bytes = str.toByteArray()
os?.write(bytes)
os!!.flush()
os.close()
}
}
}
}
牛逼牛逼
找了特别久也没有完美的解决方案
但是自己弄出来了