Di aplikasi saya, pengguna harus memilih file audio yang kemudian ditangani oleh aplikasi. Masalahnya adalah agar aplikasi melakukan apa yang saya inginkan dengan file audio, saya perlu URI dalam format file. Ketika saya menggunakan pemutar musik asli Android untuk mencari file audio di aplikasi, URI adalah konten URI, yang terlihat seperti ini:
content://media/external/audio/media/710
Namun, menggunakan aplikasi pengelola file populer Astro, saya mendapatkan yang berikut:
file:///sdcard/media/audio/ringtones/GetupGetOut.mp3
Yang terakhir ini jauh lebih mudah diakses untuk saya gunakan, tetapi tentu saja saya ingin aplikasi memiliki fungsi dengan file audio yang dipilih pengguna terlepas dari program yang mereka gunakan untuk menelusuri koleksi mereka. Jadi pertanyaan saya adalah, apakah ada cara untuk mengubah content://
gaya URI menjadi file://
URI? Kalau tidak, apa yang akan Anda rekomendasikan untuk saya untuk menyelesaikan masalah ini? Berikut adalah kode yang memanggil pemilih, untuk referensi:
Intent ringIntent = new Intent();
ringIntent.setType("audio/mp3");
ringIntent.setAction(Intent.ACTION_GET_CONTENT);
ringIntent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(ringIntent, "Select Ringtone"), SELECT_RINGTONE);
Saya melakukan hal berikut dengan konten URI:
m_ringerPath = m_ringtoneUri.getPath();
File file = new File(m_ringerPath);
Kemudian lakukan beberapa hal FileInputStream dengan kata file.