ฉันกำลังเขียนแอปกล้องกรณีใช้งานเฉพาะที่กำหนดเป้าหมายเป็น Android 11 เมื่อฉันกดบันทึก ฉันต้องการสร้างไดเร็กทอรีใหม่ที่ไหนสักแห่ง (ด้วยชื่อตามการประทับเวลา ฯลฯ ) ที่มีวิดีโอผลลัพธ์รวมถึงฮีปทั้งหมด ไฟล์ YAML/JSON/CSV แบบกำหนดเองอื่นๆ ที่ถูกเขียนระหว่างกระบวนการบันทึกด้วย (ตามตรรกะของเอาต์พุตของการบันทึก)
ฉันต้องการให้ไฟล์ที่สร้างขึ้นทั้งหมดสามารถถอนการติดตั้ง/ติดตั้งแอปใหม่ได้ เนื่องจากฉันไม่ต้องการเสี่ยงให้ผู้ใช้สูญเสียทุกสิ่งที่พวกเขาเคยบันทึกไว้หากพวกเขาถอนการติดตั้งแอป ฉันจะทำอย่างไรกับการเปลี่ยนแปลงพื้นที่เก็บข้อมูลที่กำหนดขอบเขตใหม่ ฯลฯ ใน Android 11
เมื่อดูภาพรวมที่นี่ ฉันพบว่า:
- ไฟล์เฉพาะแอป, การตั้งค่าแอป และ ฐานข้อมูล ไม่เหมาะอย่างชัดเจน เหนือสิ่งอื่นใด ไฟล์เหล่านี้ไม่สามารถถอนการติดตั้งได้
- เอกสารและไฟล์อื่นๆ ใช้ Storage Access Framework แต่ไม่เหมาะเนื่องจากต้องใช้ตัวเลือกไฟล์ระบบทุกครั้งที่คุณต้องการเขียนบางสิ่ง สิ่งนี้จะรบกวนขั้นตอนการบันทึก/ประสบการณ์ผู้ใช้ และไม่มีแอปกล้องใดทำงานเช่นนั้น
- ชุดข้อมูล/BlobStoreManager (ที่นี่) ก็ไม่เป็นเช่นนั้น เหมาะสมกับการใช้งานของฉัน
- MediaStore API ดูเหมือนว่าควรจะเป็นอันหนึ่ง แต่ดูเหมือนจะไม่สามารถทำสิ่งที่ฉันต้องการได้ในแง่ของการสร้างไดเร็กทอรีเอาต์พุตทั้งหมด รวมถึงไฟล์ข้อความ YAML/JSON/CSV ที่กำหนดเอง ทั้งหมดนั้น อยู่ด้วยกัน. เป้าหมายของฉันคือผู้ใช้สามารถไปที่ File Explorer นำทางไปยังโฟลเดอร์ที่เหมาะสม และคัดลอกโฟลเดอร์ที่มีการบันทึกไปยังคอมพิวเตอร์หรืออะไรก็ตามได้ตลอดเวลา เพื่อบันทึก/ดูข้อมูล แม้แต่ MediaStore.Files ก็ไม่รับประกันว่าคุณจะสามารถทำเช่นนั้นได้จริงหากแอปของคุณใช้พื้นที่เก็บข้อมูลที่กำหนดขอบเขต
ตัวเลือกเดียวที่ดูเหมือนจะเหลืออยู่คือการใช้ MANAGE_EXTERNAL_STORAGE และใส่ข้อมูลทุกที่ที่ฉันต้องการในโฮมไดเร็กตอรี่ แต่ดูเหมือนว่าจะเป็นการอนุญาตที่รุนแรงเล็กน้อยที่จะขอเพียงเพื่อที่จะสามารถบันทึกไฟล์ข้อความบางไฟล์พร้อมกับ วิดีโอที่ฉันผลิต นอกจากนี้การอนุญาตนั้นเป็นเฉพาะของ Android 11 หากฉันต้องการรองรับ Android เวอร์ชันเก่าฉันต้องทำอย่างไร
ตัวเลือกที่ดีที่สุดของฉันที่นี่คืออะไร? มีตัวเลือกที่ฉันพลาดไปหรือไม่?