Handling Files in Code After Android 10
Handling Files in Code After Android 10 – dalam membuat aplikasi berbasis android, kita sebaiknya banyak-banyak membaca manual dokumentasi dari setiap SDK yang direlease oleh google karena setiap versi mempunyai perbedaaan terutama dalam hal permission nya.
Hal mudah untuk cek versi android dan SDK yang digunakan disetiap ponsel yang kita gunakan, kalian bisa menggunakan Aida 64.
Kalian bisa melihat versi android dan sdk (versi API level)
Disitu terlihat android version 7.1.2 (nougat) dengan versi SDK / API level 25.
Sesuai dengan dokumentasi dari android version 10 walaupun di AndroidManifest.xml sudah kalian setting berikut
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="30"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="30"/> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" android:maxSdkVersion="30"/>
Maka file yang diakses oleh aplikasi tidak bisa dibaca! ketika saya cek sebuah path walaupun file exist namun tidak bisa di read!
File file = new File(path); "File ada? "+file.exists()+"\nFile dapat dibaca?:"+file.canRead()+ "File is file?"+file.isFile()+"\npath: "+file.getPath()+"\ntidak bisa dibaca!!!"
Padahal ketika saya jalankan di ponsel dengan Versi android 9 (Pie) dan API / SDK 28 berjalan dengan baik dan lancar! Namun ketika dijalankan di Versi Android 10 dan API/SDK 29 tidak berjalan dengan baik! karena harus ada legacy
Kalian wajib menambahkan android:requestLegacyExternalStorage="true"
pada AndroidManifest.xml
Ref
https://medium.com/android-news/handling-files-in-code-after-the-android-10-released-2bea0e16d35