ด้วย Scoped Storage ทำให้ Android 11 บนอุปกรณ์บางรุ่นทำให้การลบรูปภาพใน Google Photos ไม่สะดวกเล็กน้อย แต่อาจมีการแก้ไข
เราไม่มีทางรู้ได้เลยว่ามีอุปกรณ์กี่เครื่องในตลาดที่ใช้ Android 11 นับตั้งแต่ Google ไม่เผยแพร่สถิติการกระจายอีกต่อไปแต่อาจมีหลายสิบล้านคนที่บริษัทอย่าง Xiaomi และ Samsung มีเวลาผลักดันการอัปเดต หลายรุ่นของพวกเขา. หากอุปกรณ์ของคุณใช้ Android 11 และคุณใช้ Google Photos มีโอกาสที่คุณจะพบกับการเปลี่ยนแปลงที่น่ารำคาญกับวิธีที่แอปจัดการการลบและกู้คืนรูปภาพ แทนที่จะเลือกรูปภาพและวิดีโอที่คุณต้องการลบ ให้แตะไอคอนถังขยะ แล้วแตะปุ่ม "ย้าย" ไปที่ถังขยะ" ตอนนี้คุณจะต้องแตะผ่านข้อความแจ้งพิเศษเพื่อให้สิทธิ์ Google Photos ลบหรือกู้คืนของคุณ ไฟล์.
สำหรับผู้ที่ถ่ายรูปและวิดีโอจำนวนมาก อาจเป็นเรื่องน่ารำคาญที่ต้องให้สิทธิ์ Google Photos เพื่อลบหรือกู้คืนไฟล์ และดังที่ทรงชี้ให้เห็นโดย หุ่นยนต์ตำรวจการแตะปุ่มพิเศษไม่ใช่ปัญหาเดียวที่คุณอาจต้องจัดการ หากคุณใช้ Google Photos บนอุปกรณ์อื่นและต้องการแก้ไขหรือทิ้งไฟล์ที่คุณอัปโหลดจากโทรศัพท์ที่ใช้ Android 11 แอปอาจขอให้คุณตรวจสอบ "การเปลี่ยนแปลงที่ไม่ซิงค์กัน" สิ่งนี้อาจสร้างความรำคาญได้อย่างรวดเร็วหาก Google Photos ขอให้คุณตรวจสอบการเปลี่ยนแปลงที่คุณเพิ่งทำบนแพลตฟอร์มอื่น
ขั้นตอนเพิ่มเติมในการลบหรือกู้คืนไฟล์ไม่จำเป็นใน Android 10 แต่ตอนนี้จำเป็นใน Android 11 เนื่องจากการบังคับใช้ Scoped Storage ก่อนพื้นที่จัดเก็บที่กำหนดขอบเขต การเข้าถึงไดเร็กทอรีที่จัดเก็บข้อมูลภายนอกทั้งหมดได้รับการจัดการโดยหน่วยงานเดียว การอนุญาต ทำให้คุณจำกัดแอปที่สามารถเข้าถึงเอกสาร รูปภาพ หรือส่วนตัวของคุณได้ยาก วิดีโอ เมื่อใช้พื้นที่เก็บข้อมูลที่มีขอบเขตแล้ว Android จะจำกัดจำนวนการเข้าถึงแอปที่สามารถเข้าถึงไฟล์ที่ละเอียดอ่อนโดยไม่ได้รับความยินยอมจากผู้ใช้อย่างชัดแจ้ง ดูรายละเอียดเพิ่มเติมเกี่ยวกับพื้นที่จัดเก็บที่กำหนดขอบเขตได้ ในบทความนี้ หรือดูกราฟิกของ Google ด้านล่างเพื่อดูสรุปการเปลี่ยนแปลง
ในขณะที่พวกเขากำลังยุ่งอยู่กับการจำกัดการเข้าถึงพื้นที่เก็บข้อมูลใน Android 11 Google ยังได้ปรับปรุง API ที่มีอยู่เพื่อปรับปรุงประสบการณ์ผู้ใช้ ตัวอย่างเช่น แอปที่กำหนดเป้าหมายเป็น Android 11 สามารถใช้ MediaStore API ได้ ทิ้งไฟล์แทนที่จะลบทิ้ง. เพื่อที่จะย้ายไฟล์ไปที่ถังขยะ แอปจะต้องทำ แจ้งให้ผู้ใช้ให้สิทธิ์ในการเขียน. เนื่องจากรูปภาพและวิดีโอส่วนใหญ่ที่คุณเพิ่มลงใน Google Photos จากโทรศัพท์ของคุณมาจากแอปอื่น เช่นแอพกล้องถ่ายรูป — รูปภาพจะต้องขออนุญาตก่อนจึงจะสามารถย้ายไฟล์เข้าหรือออกจากได้ ขยะ. อย่างไรก็ตาม Google Photos จะไม่ขออนุญาตลบไฟล์หากคุณใช้โทรศัพท์ Pixel ที่ติดตั้ง Android 11 อย่างไรก็ตาม จะขออนุญาตบนอุปกรณ์อื่นๆ ทุกเครื่องที่ใช้ Android 11 รวมถึงอุปกรณ์ Samsung, Xiaomi, OnePlus และ ASUS ส่วนใหญ่ สิ่งที่ช่วยให้?
เหตุผลก็คือแอปแกลเลอรีระบบไม่อยู่ภายใต้ข้อจำกัดพื้นที่เก็บข้อมูลที่กำหนดขอบเขต นั่นหมายความว่าแอปคลังภาพสามารถเปิด แก้ไข หรือลบรูปภาพและวิดีโอโดยไม่ได้รับอนุญาตอย่างชัดแจ้ง Google Photos ได้รับการตั้งค่าล่วงหน้าเป็นแอปแกลเลอรีระบบบนโทรศัพท์ Pixel แต่ OEM ส่วนใหญ่ตั้งค่าแอปแกลเลอรีของตนเองไว้ล่วงหน้าแทน นอกจากนี้ ไม่มีการตั้งค่าที่ผู้ใช้ต้องเผชิญเพื่อเปลี่ยนแอปแกลเลอรีระบบ แม้แต่ในหน้าจอ "แอปเริ่มต้น" ของ Android ก็ตาม อย่างไรก็ตามนั่น เป็น วิธีที่ซ่อนอยู่ในการเปลี่ยนแอปแกลเลอรีระบบ แต่มีอย่างหนึ่ง ใหญ่ ข้อแม้: เฉพาะแอปพลิเคชันระบบเท่านั้นที่สามารถตั้งค่าเป็นแอปแกลเลอรีระบบได้ นั่นหมายถึงเฉพาะโทรศัพท์เท่านั้น มี Google Photos ติดตั้งไว้ล่วงหน้าเป็นแอประบบแล้ว สามารถใช้ประโยชน์จากเคล็ดลับนี้ได้
มีโทรศัพท์ไม่มากที่ตรงตามเกณฑ์นี้ จากการทดสอบของเราเราสามารถยืนยันสิ่งนี้ได้ ใช้งานได้กับโทรศัพท์ OnePlus และ ASUS บางรุ่น. วิธีการนี้ใช้ไม่ได้กับโทรศัพท์ Samsung รุ่นใดที่เราทดสอบ และก็ใช้ไม่ได้กับ Xiaomi Mi 10 Pro ด้วย หากคุณมีสิทธิ์เข้าถึงรูทหรือใช้งาน ROM แบบกำหนดเอง วิธีนี้อาจใช้ได้กับอุปกรณ์ของคุณหลังจากที่คุณจัดระบบแอป Google Photos แต่เราทดสอบวิธีนี้กับอุปกรณ์ในสต็อกเท่านั้น
วิธี (อาจ) ทำให้ Google Photos เป็นแอปแกลเลอรีระบบ
เครดิตไปที่ Kieron Quinn (ควินนี่899 บนฟอรัม XDA) เพื่อแบ่งปันเคล็ดลับนี้!
สิ่งแรกที่คุณต้องทำคือติดตั้ง ADB บนพีซีของคุณ เรามีคำแนะนำที่อัปเดตเกี่ยวกับวิธีการดำเนินการดังกล่าว ที่นี่. เมื่อคุณตั้งค่า ADB แล้ว ให้ป้อนคำสั่งต่อไปนี้:
adbshellcmdroleadd-role-holderandroid.app.role.SYSTEM_GALLERYcom.google.android.apps.photos
หากคุณไม่เห็นข้อผิดพลาด แสดงว่าอาจใช้งานได้! คุณสามารถยืนยันได้อย่างรวดเร็วว่าใช้งานได้โดยถ่ายรูปแล้วลองลบออกใน Google Photos หรือคุณสามารถเรียกใช้คำสั่งต่อไปนี้:
adb shell dumpsys role
...และตรวจสอบดูว่า "ผู้ถือ" ของ "android.app.role" หรือไม่ SYSTEM_GALLERY" คือ "com.google.android.apps.photos" (ชื่อแพ็กเกจของ Google Photos)
คำสั่งนี้ใช้ทำอะไร?
Android 10 ได้เพิ่ม API ใหม่ที่เรียกว่า "Roles". เมื่อแอปมีบทบาทบางอย่าง แอปจะได้รับสิทธิ์เข้าถึงสิทธิ์บางอย่างโดยอัตโนมัติ ตัวอย่างเช่น บทบาท SYSTEM_GALLERY ให้สิทธิ์แอป "เข้าถึงการอ่านและเขียนเต็มรูปแบบสำหรับไฟล์รูปภาพและวิดีโอทั้งหมดบนที่จัดเก็บข้อมูลภายนอก รวมถึงการเข้าถึงตำแหน่งด้วย ข้อมูลเมตา" บทบาท SYSTEM_GALLERY สามารถมอบให้กับแอปพลิเคชันระบบเท่านั้น และเจ้าของเริ่มต้นถูกกำหนดโดย Android ค่าการกำหนดค่า "config_systemGallery" ดังที่เราอธิบายไว้ก่อนหน้านี้ OEM ส่วนใหญ่จะตั้งค่านี้เป็นชื่อแพ็คเกจที่สอดคล้องกับของพวกเขา แอพแกลเลอรีของตัวเอง ค่านี้ไม่สามารถเปลี่ยนแปลงได้โดยไม่ต้องแก้ไขเฟรมเวิร์กหรือติดตั้งโอเวอร์เลย์ ซึ่งทั้งสองอย่างนี้จำเป็นต้องมีการเข้าถึงรูท
อย่างไรก็ตามมัน เป็น เป็นไปได้ที่จะเพิ่มแอปอื่นในฐานะผู้ถือบทบาท SYSTEM_GALLERY แต่เท่านั้น หากแอปนั้นเป็นแอประบบด้วย. สิ่งนี้เป็นไปได้ในโทรศัพท์ OnePlus และ ASUS บางรุ่นเนื่องจาก OEM เหล่านี้ดูเหมือนจะติดตั้ง Google Photos ไว้ล่วงหน้าในระดับระบบมากกว่าระดับผู้ใช้ ด้วยเหตุนี้ แอป Google Photos จึงมีสิทธิ์ดำรงตำแหน่ง SYSTEM_GALLERY และเราจึงได้ประโยชน์ ของอินเทอร์เฟซเชลล์ RoleManager ที่ซ่อนอยู่ของ Android เพื่อให้สิทธิ์ในการเข้าถึงการอนุญาตที่ปกติไม่สามารถทำได้ ได้รับ. หากคุณพยายามมอบบทบาท SYSTEM_GALLERY ให้กับแอปที่ไม่ใช่ระบบ คุณจะเห็นข้อผิดพลาดต่อไปนี้ใน logcat:
ERoleControllerServiceImpl: Packagedoesnotqualifyfortherole, package: com.google.android.apps.photos, role: android.app.role.SYSTEM_GALLERY
น่าเศร้าที่เรายังไม่พบวิธีแก้ไขข้อจำกัดนี้ แต่หากพบ เราจะแบ่งปันวิธีการของเรากับชุมชน แน่นอนว่า เราต้องการให้ Google สร้างบทบาท SYSTEM_GALLERY ที่ผู้ใช้กำหนดได้ แทนที่จะจำกัดอยู่เพียงตัวเลือกของ OEM