すべてのOPUS
オーディオ ファイルを取得する次のコードがあり、1 つのディレクトリを除くすべてのファイルでうまく機能しますWhatsApp Voice Notes
。下のオーディオファイルWhatsApp Audio
は正常に取得されますが。内部のファイルにアクセスするために不足している制限/許可はありますWhatsApp Voice Notes
か?
private fun readAllOpusFiles() {
val resolver = this.contentResolver
val uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
val projection = arrayOf(MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.RELATIVE_PATH,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Media.SIZE,
MediaStore.Audio.Media.MIME_TYPE,
MediaStore.Audio.Media.DATE_MODIFIED)
val cursor = resolver.query(uri, projection, null, null, null, null)
if (cursor != null && cursor.moveToFirst()) {
do {
val id = cursor.getColumnIndex(MediaStore.Audio.Media._ID)
val name = cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME)
var path = cursor.getColumnIndex(MediaStore.Audio.Media.RELATIVE_PATH)
Log.d("File ID: ", cursor.getString(id))
Log.d("File Name: ", cursor.getString(name))
if (cursor.getString(path) != null) {
Log.d("File Path: ", cursor.getString(path))
}
} while (cursor.moveToNext())
}
}
android:requestLegacyExternalStorage="true"
PS: Android 10 以前では、マニフェスト以下を使用しuri
てlistFiles
すべてのファイルにアクセスできますfile
。
val uri = URI.create("file:///storage/emulated/0/WhatsApp/Media/WhatsApp%20Voice%20Notes")
val file = File(uri)