Saya sedang menulis aplikasi kamera kasus penggunaan khusus yang menargetkan Android 11. Ketika saya mencapai rekor, saya ingin membuat direktori baru di suatu tempat (dengan nama berdasarkan stempel waktu dll) yang berisi video yang dihasilkan serta seluruh tumpukan file YAML/JSON/CSV khusus lainnya yang juga ditulis selama proses perekaman (secara logis termasuk dalam keluaran rekaman).
Saya ingin semua file yang dihasilkan tetap bertahan ketika aplikasi dicopot/diinstal ulang karena saya tidak ingin mengambil risiko pengguna kehilangan semua yang pernah mereka rekam jika mereka mencopot pemasangan aplikasi. Bagaimana cara melakukan ini dengan perubahan penyimpanan terbatas baru, dll di Android 11?
Melihat ikhtisar di sini, saya dapat melihat bahwa:
- File khusus aplikasi, Preferensi aplikasi dan Database jelas tidak cocok karena antara lain file-file ini tidak dapat bertahan jika di-uninstal
- Dokumen dan file lain menggunakan Storage Access Framework, namun ini tidak cocok karena memerlukan pemilih file sistem setiap kali Anda ingin menulis sesuatu. Hal ini akan mengganggu alur perekaman/pengalaman pengguna, dan tidak ada aplikasi kamera yang berfungsi seperti itu.
- Datasets/BlobStoreManager (di sini) juga tidak sesuai untuk kasus penggunaan saya.
- MediaStore API sepertinya memang seharusnya menjadi satu-satunya, tetapi sepertinya tidak dapat melakukan apa yang saya inginkan dalam hal menghasilkan seluruh direktori keluaran, termasuk file teks YAML/JSON/CSV khusus, itu saja milik bersama. Tujuan saya adalah agar pengguna setiap saat cukup membuka file explorer, menavigasi ke folder yang sesuai, dan cukup menyalin folder dengan rekaman ke komputer mereka atau apa pun, untuk menyimpan/melihat data. Bahkan MediaStore.Files tampaknya tidak menjamin Anda benar-benar dapat melakukan hal tersebut jika aplikasi Anda menggunakan penyimpanan terbatas.
Satu-satunya pilihan yang tersisa adalah menggunakan MANAGE_EXTERNAL_STORAGE dan meletakkan data di mana pun saya inginkan di direktori home, tapi itu sepertinya izin ekstrem yang harus diminta hanya agar dapat menyimpan beberapa file teks bersama dengan video yang saya produksi. Selain itu, izin itu khusus untuk Android 11. Jika saya ingin mendukung versi Android yang lebih lama, apa yang harus saya lakukan?
Apa pilihan terbaik saya di sini? Apakah ada opsi yang saya lewatkan?