如何解决如何使用范围存储更新Android 11中的Mediastore?
我无法更新音频文件的MediaStore列,例如标题,专辑,歌曲的艺术家,尽管我使用MediaStore.createWriteRequest()和用户授权请求uri权限。当我执行ContentResolver.update时,noOfRowsUpdate为1,但未应用任何更改。
private fun requestWritePermission(uri: Uri){
if (VERSION.SDK_INT >= VERSION_CODES.R) {
val uriList = mutableListOf<Uri>(uri)
val pi = MediaStore.createWriteRequest(contentResolver,uriList)
try {
startIntentSenderForResult(
pi.intentSender,REQUEST_PERM_WRITE,null,0
)
} catch (e: SendIntentException) {
}
}
}
override fun onActivityResult(requestCode: Int,resultCode: Int,intentData: Intent?) {
if(requestCode == REQUEST_PERM_WRITE && resultCode == Activity.RESULT_OK){
updateAudioTags
}
super.onActivityResult(requestCode,resultCode,intentData)
}
private fun updateAudioTags() {
val uri = ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,trackId)
val contentValues = ContentValues()
if (hasQ()) {
contentValues.put(MediaStore.Audio.Media.IS_PENDING,1)
application.contentResolver.update(uri,contentValues,null)
}
contentValues.clear()
if (hasQ()) contentValues.put(MediaStore.Audio.Media.IS_PENDING,0)
contentValues.put(MediaStore.Audio.Media.TITLE,"New title")
contentValues.put(MediaStore.Audio.Media.ALBUM,"New album")
contentValues.put(MediaStore.Audio.Media.ARTIST,"New artist")
val rowsUpdated = application.contentResolver.update(uri,null)
Log.i(TAG,"updateAudioTags() :: no of rowsUpdated : $rowsUpdated")
}
(在Google问题跟踪器中已针对同一问题提出了问题-https://issuetracker.google.com/issues/173134422)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。