从target=29开始,要想读取sdcard中的文件,通过Environment.getExternalStoreage读取sdcard文件的方式已经行不通了。
当然,官方提供了一种缓解策略,在application的manifest中定义:`
android:maxSdkVersion="28" />`
复制代码
创建并且写入文件
写入文件需要用户点击确定,并且如果文件重名,会默认在后面加上(1)这种括号123等等
发送intent:
val initialUri = Uri.parse("file:///sdcard/Downloads/")
val intent = Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
type = "application/text"
putExtra(Intent.EXTRA_TITLE, "hot_exchange_${DateTimeUtils.formatNow()}.json")
// Optionally, specify a URI for the directory that should be opened in
// the system file picker before your app creates the document.
putExtra(DocumentsContract.EXTRA_INITIAL_URI, initialUri)
}
startActivityForRe