تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۰ محمدامین سرلک
گرفتن لیست موزیک‌ها از حافظه موبایل(آموزشی + کاتلین)
جامعه جاوا (اندروید) ایجاد شده در ۰۹ اردیبهشت ۱۴۰۱
data class Music(
    var id: Int= 0,
    var name: String="",
    var artist: String="",
    var coverResId: ByteArray? = null,
    var musicFileRedId: Uri? =null
)
fun getMusicFromFile(context: Context): List<Music> {
    val directory =
        File(Environment.getExternalStoragePublicDirectory("Music").toString())
    val mp3files: Array<File> = directory.listFiles(object : FileFilter {
        override fun accept(pathName: File?): Boolean {
            if (pathName != null) {
                return pathName.name.endsWith(".mp3")
            }
            return false
        }
    }) as Array<File>
    val mediaMetadataRetriever = MediaMetadataRetriever()
    val list = ArrayList<Music>()
    for (f in mp3files) {
        val music = Music()
        val uri = Uri.fromFile(f)
        mediaMetadataRetriever.setDataSource(context, uri)
        music.name = f.name.toString()
        music.artist = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE).toString()
        music.musicFileRedId = f.toUri()
        music.coverResId = mediaMetadataRetriever.embeddedPicture
        list.add(music)
    }
    return list
}

دسترسی به فایل رو هم توی قسمت android Manifest قرار بدید

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>

دقت کنید که یا از تو تنظیمات گوشی یا تعریف کردن runtime permission توی کدتون دسترسی به فایل رو توی گوشیتون فعال کنید.