อธิบายสิทธิ์ในการจัดเก็บข้อมูล Android — Android 10 ถึง 14

อัปเดตล่าสุด :

รูปแบบการอนุญาตพื้นที่เก็บข้อมูลของ Android มีการเปลี่ยนแปลงอย่างมากในเวอร์ชันล่าสุด และการอัปเดตแต่ละครั้งจะเปลี่ยนแปลงสิ่งที่ผู้จัดการไฟล์สามารถเข้าถึงได้และไม่สามารถเข้าถึงได้หากคุณเคยเปิดตัวจัดการไฟล์แล้วพบว่าโฟลเดอร์ว่างเปล่า เส้นทางไม่สามารถเข้าถึงได้ หรือมีกล่องโต้ตอบการอนุญาตปรากฏขึ้นซ้ำๆ แสดงว่าคุณกำลังเผชิญกับผลกระทบในโลกแห่งความเป็นจริงจากการเปลี่ยนแปลงนโยบายเหล่านี้นี่คือสิ่งที่เปลี่ยนแปลงในแต่ละเวอร์ชัน และวิธีการกำหนดค่า AnExplorer เพื่อรักษาการเข้าถึงระบบไฟล์เต็มรูปแบบ

คำตอบสั้น ๆ

บน Android 11 ขึ้นไป ให้ไปที่ การตั้งค่า → แอป → AnExplorer → สิทธิ์ → ไฟล์และสื่อ → อนุญาตการจัดการไฟล์ทั้งหมดสิ่งนี้ให้สิทธิ์ MANAGE_EXTERNAL_STORAGE ที่คืนค่าความสามารถในการเรียกดูเต็มรูปแบบหากไม่มีมัน ตัวจัดการไฟล์ก็จะถูกแซนด์บ็อกซ์เหมือนกับแอปอื่นๆ

ไทม์ไลน์การอนุญาตพื้นที่เก็บข้อมูล Android

Android 9 และต่ำกว่า — ยุคเปิด

ก่อน Android 10 พื้นที่จัดเก็บข้อมูลนั้นเรียบง่ายแอปต่างๆ ร้องขอสิทธิ์ READ_EXTERNAL_STORAGE หรือ WRITE_EXTERNAL_STORAGE ในการติดตั้งหรือรันไทม์ และเมื่อได้รับสิทธิ์แล้ว แอปเหล่านั้นจะสามารถเข้าถึงการอ่าน/เขียนในพื้นที่จัดเก็บข้อมูลที่ใช้ร่วมกันทั้งหมดได้อย่างสมบูรณ์ ทุกโฟลเดอร์ ทุกไฟล์ประเภท ทุกเส้นทางตัวจัดการไฟล์ทำงานเหมือนกับที่คุณคาดหวังให้โปรแกรมสำรวจไฟล์บนเดสก์ท็อปทำงานได้

สิ่งนี้ทรงพลังแต่สร้างความกังวลด้านความปลอดภัยแอพใดๆ ที่ได้รับอนุญาตจากพื้นที่เก็บข้อมูลสามารถอ่านรูปภาพ เอกสาร ดาวน์โหลด และไฟล์ส่งออกของแอพอื่นๆ ได้โดยไม่มีข้อจำกัด

Android 10 — เปิดตัวที่เก็บข้อมูลที่กำหนดขอบเขต (ไม่บังคับ)

Android 10 นำเสนอพื้นที่เก็บข้อมูลที่กำหนดขอบเขตเป็นแนวคิด แต่กำหนดให้นักพัฒนาเลือกใช้แอปที่กำหนดเป้าหมาย API 29 สามารถเพิ่ม requestLegacyExternalStorage=true ในรายการเพื่อรักษาลักษณะการทำงานแบบเก่าตัวจัดการไฟล์ส่วนใหญ่ใช้แฟล็กนี้ ดังนั้นผู้ใช้จึงไม่เห็นความแตกต่างในทางปฏิบัติ

การเปลี่ยนแปลงที่สำคัญที่นำมาใช้:

  • แนวคิดของ "ที่จัดเก็บข้อมูลภายนอกเฉพาะแอป" ( Android/data/[package]/ ) กลายเป็นแซนด์บ็อกซ์อย่างเป็นทางการ
  • MediaStore API เป็นวิธีที่แนะนำในการเข้าถึงไฟล์มีเดีย
  • Storage Access Framework (SAF) ได้รับความสำคัญสำหรับการเข้าถึงเอกสาร
  • การเข้าถึงเส้นทางไฟล์โดยตรงนั้นเลิกใช้แล้วในทางเทคนิค แต่ยังคงใช้งานได้กับการตั้งค่าสถานะแบบเดิม

รับตัวจัดการไฟล์ AnExplorer

จัดการ ถ่ายโอน และเข้าถึงไฟล์ของคุณบนทุกอุปกรณ์

รับแอพ

Android 11 — บังคับใช้พื้นที่เก็บข้อมูลที่กำหนดขอบเขต

Android 11 คือจุดแตกหักการตั้งค่าสถานะ requestLegacyExternalStorage หยุดทำงานสำหรับแอปที่กำหนดเป้าหมายเป็น API 30+ขณะนี้ทุกแอปได้รับการกำหนดขอบเขตตามค่าเริ่มต้นอย่างไรก็ตาม Google ตระหนักดีว่าตัวจัดการไฟล์ เครื่องมือสำรองข้อมูล และแอปป้องกันไวรัสจำเป็นต้องเข้าถึงในวงกว้างอย่างแท้จริง ดังนั้นพวกเขาจึงสร้างการอนุญาตใหม่:

MANAGE_EXTERNAL_STORAGE — สิทธิ์ "การเข้าถึงไฟล์ทั้งหมด"นี่เป็นการอนุญาตพิเศษที่:

  • จะต้องประกาศไว้ในรายการแอป
  • ต้องการให้ผู้ใช้นำทางไปยังการตั้งค่าด้วยตนเองเพื่อให้อนุญาต (ไม่สามารถอนุญาตผ่านกล่องโต้ตอบรันไทม์แบบธรรมดา)
  • จะต้องได้รับการพิสูจน์ต่อ Google ในระหว่างการตรวจสอบ Play Store
  • ให้สิทธิ์การเข้าถึงพื้นที่เก็บข้อมูลที่ใช้ร่วมกันทั้งหมด ยกเว้น Android/data/ และ Android/obb/ ไดเร็กทอรี

เมื่อ AnExplorer ร้องขอการอนุญาตนี้ คุณจะเห็นหน้าจอระบบขอให้คุณสลับ "อนุญาตการจัดการไฟล์ทั้งหมด"นี่ไม่ใช่ข้อบกพร่องหรือการเข้าถึงมากเกินไป แต่เป็นวิธีเดียวที่ตัวจัดการไฟล์สามารถทำงานได้อย่างถูกต้องบน Android 11+

Android 12 — การปรับปรุงเล็กน้อย

Android 12 ไม่ได้เปลี่ยนการอนุญาตพื้นที่เก็บข้อมูลอย่างมาก แต่เพิ่ม:

  • การอนุญาตอุปกรณ์ใกล้เคียงที่ส่งผลต่อคุณสมบัติการถ่ายโอนไฟล์
  • การเปลี่ยนแปลงเล็กน้อยเกี่ยวกับวิธีการทำงานของตัวเลือกรูปภาพ
  • การบังคับใช้กฎการเปิดเผยแพ็คเกจที่ดีขึ้น (แอปไม่สามารถมองเห็นว่ามีการติดตั้งแอปอื่น ๆ ใดบ้างโดยไม่ต้องประกาศคำสั่ง)

สำหรับฟังก์ชันตัวจัดการไฟล์ Android 12 ทำงานเหมือนกับ Android 11

Android 13 — สิทธิ์อนุญาตสื่อแบบละเอียด

Android 13 แบ่ง READ_EXTERNAL_STORAGE แบบเก่าออกเป็นสามสิทธิ์แยกกัน:

  • READ_MEDIA_IMAGES — เข้าถึงภาพถ่ายและภาพ
  • READ_MEDIA_VIDEO — เข้าถึงไฟล์วิดีโอ
  • READ_MEDIA_AUDIO — เข้าถึงไฟล์เพลงและไฟล์เสียง

ตอนนี้แอปจะขอเฉพาะประเภทสื่อที่ต้องการจริงๆ เท่านั้นเครื่องเล่นเพลงจะถามเฉพาะเสียงเท่านั้นโปรแกรมแก้ไขภาพจะขอเฉพาะรูปภาพเท่านั้นตัวจัดการไฟล์ที่มีสิทธิ์การเข้าถึงไฟล์ทั้งหมดจะข้ามสิทธิ์แบบละเอียดเหล่านี้โดยสิ้นเชิง เนื่องจาก MANAGE_EXTERNAL_STORAGE ครอบคลุมทุกอย่างแล้ว

Android 13 ยังบล็อกการเข้าถึง Android/data/ ของบุคคลที่สามโดยสมบูรณ์ผ่านทาง Storage Access Frameworkก่อนหน้านี้ คุณสามารถใช้ SAF เพื่อให้สิทธิ์การเข้าถึงโฟลเดอร์แก่ Android/data/ — วิธีแก้ปัญหาดังกล่าวถูกปิดแล้ว

รับตัวจัดการไฟล์ AnExplorer

จัดการ ถ่ายโอน และเข้าถึงไฟล์ของคุณบนทุกอุปกรณ์

รับแอพ

Android 14 — การเข้าถึงรูปภาพที่เลือก

Android 14 นำเสนอการเปลี่ยนแปลงที่ผู้ใช้เผชิญมากที่สุด: เมื่อแอปขอสิทธิ์เข้าถึงรูปภาพ ผู้ใช้สามารถเลือก "เลือกรูปภาพและวิดีโอ" แทนการให้สิทธิ์เข้าถึงสื่อทั้งหมดได้ซึ่งหมายความว่า:

  • แอปจะเห็นเฉพาะไฟล์ที่ผู้ใช้เลือกเท่านั้น
  • ผู้ใช้สามารถแก้ไขการเลือกได้ในภายหลังในการตั้งค่า
  • แอปจะต้องจัดการการเข้าถึงบางส่วนอย่างสง่างาม

สำหรับตัวจัดการไฟล์ที่มีสิทธิ์เข้าถึงไฟล์ทั้งหมด จะไม่มีผล — MANAGE_EXTERNAL_STORAGE ยังคงให้การมองเห็นสื่อเต็มรูปแบบแต่หากคุณไม่ได้ให้สิทธิ์การเข้าถึงไฟล์ทั้งหมด คุณอาจพบว่า AnExplorer สามารถดูได้เฉพาะไฟล์ที่คุณเลือกไว้อย่างชัดเจนเท่านั้น

Android 14 ยังแนะนำ:

  • การเข้าถึงตามข้อมูลรับรองสำหรับไฟล์ที่จัดการโดยองค์กร
  • การปรับปรุงเครื่องมือเลือกรูปภาพด้วยการผสานรวมผู้ให้บริการคลาวด์
  • ข้อ จำกัด ที่เข้มงวดยิ่งขึ้นในการเข้าถึงไฟล์พื้นหลัง

วิธีการทำงานของ Storage Access Framework (SAF)

เมื่อตัวจัดการไฟล์ขาดการเข้าถึงไฟล์ทั้งหมด กรอบการเข้าถึงที่เก็บข้อมูลจะกลายเป็นกลไกทางเลือกSAF ทำงานผ่านเครื่องมือเลือกเอกสารระดับระบบ:

  1. แอปเรียก ACTION_OPEN_DOCUMENT_TREE เพื่อขอเข้าถึงโฟลเดอร์
  2. Android จะแสดงตัวเลือกไฟล์ระบบที่คุณนำทางไปยังโฟลเดอร์ที่ต้องการ
  3. คุณแตะ "ใช้โฟลเดอร์นี้" และยืนยันด้วย "อนุญาต"
  4. แอปได้รับการอนุญาต URI แบบถาวรสำหรับโฟลเดอร์เฉพาะนั้นและเนื้อหาทั้งหมด
  5. เงินช่วยเหลือนี้ยังคงอยู่กับการรีสตาร์ทแอปและการรีบูตโทรศัพท์

การให้สิทธิ์ SAF นั้นทรงพลังแต่น่าเบื่อ — คุณต้องให้สิทธิ์แต่ละโฟลเดอร์ด้วยตนเองAnExplorer ใช้ SAF เป็นทางเลือกเมื่อการเข้าถึงไฟล์ทั้งหมดไม่พร้อมใช้งานหรือเมื่อเข้าถึงเส้นทางที่ได้รับการป้องกันเฉพาะ

ข้อจำกัดของ SAF

  • ไม่สามารถให้สิทธิ์การเข้าถึงรูทที่จัดเก็บข้อมูลภายในบน Android 13+
  • ไม่สามารถเข้าถึง Android/data/ บน Android 13+
  • ไม่สามารถเข้าถึง Android/obb/ บน Android 13+
  • ประสิทธิภาพช้ากว่าการเข้าถึงไฟล์โดยตรงอย่างมาก (การดำเนินการผ่านผู้ให้บริการเนื้อหา)
  • การดำเนินการบางอย่าง (เช่น การดำเนินการโฟลเดอร์แบบเรียกซ้ำ) จะช้ากว่ามากผ่าน SAF

การกำหนดค่า AnExplorer เพื่อการเข้าถึงสูงสุด

เพื่อประสบการณ์ที่ดีที่สุดใน Android เวอร์ชันทั้งหมด:

  1. ให้สิทธิ์การเข้าถึงไฟล์ทั้งหมด: การตั้งค่า → แอป → AnExplorer → สิทธิ์ → ไฟล์และสื่อ → อนุญาตการจัดการไฟล์ทั้งหมด
  2. อนุญาตการแจ้งเตือน (Android 13+): จำเป็นสำหรับการแสดงความคืบหน้าในการถ่ายโอน
  3. ปิดใช้งานการเพิ่มประสิทธิภาพแบตเตอรี่: การตั้งค่า → แอป → AnExplorer → แบตเตอรี่ → ไม่จำกัด (ป้องกันไม่ให้ระบบปฏิบัติการหยุดการทำงานของพื้นหลัง)
  4. ให้สิทธิ์การเข้าถึง SAF สำหรับ Android/ข้อมูล (Android 11-12 เท่านั้น): เมื่อ AnExplorer แจ้งให้เข้าถึงโฟลเดอร์ไปยัง Android/ข้อมูล ให้แตะ "ใช้โฟลเดอร์นี้" → "อนุญาต"

รับตัวจัดการไฟล์ AnExplorer

จัดการ ถ่ายโอน และเข้าถึงไฟล์ของคุณบนทุกอุปกรณ์

รับแอพ

สิ่งที่ยังไม่สามารถเข้าถึงได้หากไม่มีรูท

แม้ว่าจะให้สิทธิ์การเข้าถึงไฟล์ทั้งหมดแล้วก็ตาม เส้นทางบางเส้นทางยังคงถูกบล็อกโดยโมเดลความปลอดภัยของ Android:

เส้นทางเหตุใดจึงถูกบล็อกทางเลือก
/data/data/แซนด์บ็อกซ์ของแอป (บังคับใช้เคอร์เนล)ADB หรือการเข้าถึงรูท
/data/user/0/เช่นเดียวกับด้านบน รูปแบบผู้ใช้หลายรายADB หรือการเข้าถึงรูท
Android/data/ (Android 13+)บล็อกนโยบายระบบปฏิบัติการUSB MTP จากพีซี, ADB หรือรูท
Android/obb/ (Android 13+)บล็อกนโยบายระบบปฏิบัติการUSB MTP จากพีซี, ADB หรือรูท
/system/พาร์ติชันแบบอ่านอย่างเดียวรูทพร้อมต่อเชื่อมใหม่

การแก้ไขปัญหาการอนุญาต

"การอนุญาตถูกปฏิเสธ" แม้ว่าจะได้รับสิทธิ์การเข้าถึงไฟล์ทั้งหมดก็ตาม

  1. บังคับหยุด AnExplorer แล้วเปิดใหม่อีกครั้ง
  2. เพิกถอนการอนุญาตและให้อนุญาตใหม่
  3. ตรวจสอบว่าคุณให้สิทธิ์ "ไฟล์ทั้งหมด" และไม่ใช่แค่ "สื่อเท่านั้น" (อุปกรณ์บางตัวแสดงทั้งสองตัวเลือก)
  4. รีสตาร์ทโทรศัพท์ของคุณ — การอนุญาตบางอย่างจำเป็นต้องรีบูตจึงจะมีผล

การอนุญาตจะรีเซ็ตต่อไปหลังจากผ่านไปสองสามวัน

Android 12+ จะเพิกถอนสิทธิ์จากแอปที่คุณไม่ได้ใช้เมื่อเร็วๆ นี้โดยอัตโนมัติ (ปกติคือ 3 เดือน)เพื่อป้องกันสิ่งนี้:

  • การตั้งค่า → แอป → AnExplorer → การอนุญาต → สลับปิด "ลบการอนุญาตหากไม่ได้ใช้แอป"
  • หรือเพียงเปิด AnExplorer เป็นครั้งคราวเพื่อให้ถือว่า "ใช้งานอยู่"

แอปแสดงโฟลเดอร์ว่างแม้จะได้รับอนุญาตก็ตาม

ซึ่งมักจะบ่งชี้ว่าแอปกำลังอ่านจากรายการไดเร็กทอรีที่แคช/เก่าดึงลงเพื่อรีเฟรช หรือนำทางออกและกลับเข้าไปในโฟลเดอร์หากปัญหายังคงอยู่ ให้ล้างแคชของ AnExplorer (การตั้งค่า → แอป → AnExplorer → ที่เก็บข้อมูล → ล้างแคช)

คำแนะนำที่เกี่ยวข้อง

รับตัวจัดการไฟล์ AnExplorer

จัดการ ถ่ายโอน และเข้าถึงไฟล์ของคุณบนทุกอุปกรณ์

รับแอพ

คำถามที่พบบ่อย