การเปลี่ยนแปลงด้านความเป็นส่วนตัวใน Android 10

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

หน้านี้จะแสดงสรุปการเปลี่ยนแปลงแต่ละรายการ

การเปลี่ยนแปลงสูงสุด

ส่วนนี้จะกล่าวถึงการเปลี่ยนแปลงที่สำคัญใน Android 10 ที่เกี่ยวข้องกับ ความเป็นส่วนตัว

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

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

  • ไฟล์ในไดเรกทอรีเฉพาะของแอป ซึ่งเข้าถึงได้โดยใช้ getExternalFilesDir()
  • รูปภาพ วิดีโอ และคลิปเสียงที่แอปสร้างจากคลังสื่อ

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

การเข้าถึงตำแหน่งอุปกรณ์ในเบื้องหลังต้องได้รับสิทธิ์

Android 10 ได้เปิดตัวสิทธิ์ ACCESS_BACKGROUND_LOCATION เพื่อรองรับการควบคุมเพิ่มเติมที่ผู้ใช้มีต่อการเข้าถึง ข้อมูลตำแหน่งของแอป

สิทธิ์ ACCESS_BACKGROUND_LOCATION จะมีผลต่อสิทธิ์เข้าถึงตำแหน่งของแอปเมื่อแอปทำงานในเบื้องหลังเท่านั้น ซึ่งแตกต่างจากสิทธิ์ ACCESS_FINE_LOCATION และ ACCESS_COARSE_LOCATION ระบบจะถือว่าแอป เข้าถึงตำแหน่งในเบื้องหลัง เว้นแต่จะตรงตามเงื่อนไขข้อใดข้อหนึ่งต่อไปนี้

  • กิจกรรมที่เป็นของแอปจะปรากฏ
  • แอปกำลังเรียกใช้บริการที่ทำงานอยู่เบื้องหน้าซึ่งประกาศประเภทบริการที่ทำงานอยู่เบื้องหน้าเป็น location

    หากต้องการประกาศประเภทบริการที่ทำงานอยู่เบื้องหน้าสำหรับบริการในแอป ให้ตั้งค่า targetSdkVersion หรือ compileSdkVersion ของแอปเป็น 29 ขึ้นไป ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่บริการที่ทำงานอยู่เบื้องหน้าสามารถดำเนินการที่ผู้ใช้เริ่มต้น ไว้ต่อ ซึ่งต้องมีการเข้าถึงตำแหน่ง

หากแอปสร้างและตรวจสอบ Geofence และกำหนดเป้าหมายเป็น Android 10 (API ระดับ 29) ขึ้นไป คุณต้องประกาศACCESS_BACKGROUND_LOCATIONสิทธิ์

ให้สิทธิ์การเข้าถึงโดยอัตโนมัติเมื่อกำหนดเป้าหมายเป็น Android 9 หรือต่ำกว่า

หากแอปทำงานบน Android 10 ขึ้นไป แต่กำหนดเป้าหมายเป็น Android 9 (API ระดับ 28) หรือต่ำกว่า แพลตฟอร์มจะใช้ลักษณะการทำงานต่อไปนี้

  • หากแอปประกาศองค์ประกอบ <uses-permission> สำหรับ ACCESS_FINE_LOCATION หรือ ACCESS_COARSE_LOCATION ระบบจะเพิ่มองค์ประกอบ <uses-permission> สำหรับ ACCESS_BACKGROUND_LOCATION โดยอัตโนมัติในระหว่างการติดตั้ง
  • หากแอปขอ ACCESS_FINE_LOCATION หรือ ACCESS_COARSE_LOCATION ระบบจะเพิ่ม ACCESS_BACKGROUND_LOCATION ลงในคำขอโดยอัตโนมัติ

เข้าถึงเมื่ออัปเกรดอุปกรณ์เป็น Android 10

หากผู้ใช้ให้สิทธิ์แอปของคุณเข้าถึงตำแหน่งของอุปกรณ์ ไม่ว่าจะเป็น ACCESS_COARSE_LOCATION หรือ ACCESS_FINE_LOCATION แล้วอัปเกรดอุปกรณ์จาก Android 9 เป็น Android 10 ระบบจะอัปเดตชุดสิทธิ์ตามตำแหน่งที่ให้ไว้ กับแอปของคุณโดยอัตโนมัติ ชุดสิทธิ์ที่แอปของคุณได้รับหลังการอัปเกรด จะขึ้นอยู่กับ SDK เวอร์ชันเป้าหมายและสิทธิ์ที่กำหนด ดังที่แสดงใน ตารางต่อไปนี้

ตารางที่ 1 การเปลี่ยนแปลงสถานะสิทธิ์เข้าถึงตำแหน่ง หลังจากอัปเกรดอุปกรณ์เป็น Android 10

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

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

การเข้าถึงถูกเพิกถอนเมื่ออัปเดตระดับ API เป้าหมายในอุปกรณ์ Android 10

พิจารณากรณีที่ติดตั้งแอปของคุณไว้แล้วในอุปกรณ์ที่ใช้ Android 10 หากคุณอัปเดตแอปให้กำหนดเป้าหมายเป็น Android 10 ในสถานการณ์นี้ อุปกรณ์จะเพิกถอนสิทธิ์ ACCESS_BACKGROUND_LOCATION

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีดึงตำแหน่งของอุปกรณ์ขณะที่แอปทำงาน ในเบื้องหลังได้ในคำแนะนำเกี่ยวกับการรับการอัปเดตตำแหน่งเป็นระยะๆ

ข้อจำกัดในการเริ่มต้นกิจกรรมจากเบื้องหลัง

ตั้งแต่ Android 10 เป็นต้นไป ระบบจะจำกัด การเริ่มกิจกรรมจาก เบื้องหลัง การเปลี่ยนแปลงลักษณะการทำงานนี้ ช่วยลดการหยุดชะงักของผู้ใช้และช่วยให้ผู้ใช้ควบคุมสิ่งที่แสดงบนหน้าจอได้มากขึ้น ตราบใดที่แอปของคุณเริ่มกิจกรรม อันเป็นผลโดยตรงจากการโต้ตอบของผู้ใช้ แอปของคุณก็ไม่น่าจะได้รับผลกระทบจาก ข้อจำกัดเหล่านี้

ดูข้อมูลเพิ่มเติมเกี่ยวกับทางเลือกอื่นที่แนะนําแทนการเริ่มกิจกรรมจากเบื้องหลังได้ที่คําแนะนําเกี่ยวกับวิธีแจ้งเตือนผู้ใช้เกี่ยวกับเหตุการณ์ที่ต้องดำเนินการอย่างเร่งด่วนในแอป

ตัวระบุและข้อมูล

ส่วนนี้แสดงรายการการเปลี่ยนแปลงที่เกี่ยวข้องกับการทำงานกับตัวระบุและข้อมูลอุปกรณ์โดยเฉพาะ

การนำความสัมพันธ์กับรายชื่อติดต่อออก

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

คู่มือเกี่ยวกับ ContactsProvider มีประกาศที่อธิบายฟิลด์และวิธีการที่เฉพาะเจาะจงซึ่งล้าสมัยในอุปกรณ์ทั้งหมด ตั้งแต่ Android 10 เป็นต้นไป

การสุ่มที่อยู่ MAC

ในอุปกรณ์ที่ใช้ Android 10 ขึ้นไป ระบบจะส่ง ที่อยู่ MAC แบบสุ่มโดยค่าเริ่มต้น

หากแอปของคุณจัดการกรณีการใช้งานระดับองค์กร แพลตฟอร์มจะมี API สำหรับการดำเนินการหลายอย่างที่เกี่ยวข้องกับที่อยู่ MAC ดังนี้

  • รับที่อยู่ MAC แบบสุ่ม: แอปเจ้าของอุปกรณ์และแอปเจ้าของโปรไฟล์ สามารถเรียกข้อมูลที่อยู่ MAC แบบสุ่มที่กำหนดให้กับเครือข่ายหนึ่งๆ ได้โดย เรียกใช้ getRandomizedMacAddress()
  • รับที่อยู่ MAC จริงจากโรงงาน: แอปเจ้าของอุปกรณ์สามารถเรียกข้อมูลที่อยู่ MAC ของฮาร์ดแวร์จริงของอุปกรณ์ได้โดยการเรียกใช้ getWifiMacAddress() วิธีนี้มีประโยชน์ในการติดตามกลุ่มอุปกรณ์

การจำกัดการเข้าถึงระบบไฟล์ /proc/net

ในอุปกรณ์ที่ใช้ Android 10 ขึ้นไป แอปจะเข้าถึง /proc/netไม่ได้ ซึ่งรวมถึงข้อมูลเกี่ยวกับสถานะเครือข่ายของอุปกรณ์ แอป ที่ต้องเข้าถึงข้อมูลนี้ เช่น VPN ควรใช้คลาส NetworkStatsManager หรือ ConnectivityManager

ข้อจํากัดเกี่ยวกับตัวระบุอุปกรณ์ที่รีเซ็ตไม่ได้

ตั้งแต่ Android 10 เป็นต้นไป แอปต้องมี READ_PRIVILEGED_PHONE_STATEสิทธิ์พิเศษจึงจะเข้าถึง ตัวระบุที่รีเซ็ตไม่ได้ของอุปกรณ์ ซึ่งรวมถึงทั้ง IMEI และหมายเลขซีเรียล

วิธีการที่ได้รับผลกระทบมีดังนี้

หากแอปไม่มีสิทธิ์และคุณพยายามขอข้อมูลเกี่ยวกับ ตัวระบุที่รีเซ็ตไม่ได้ แพลตฟอร์มจะตอบกลับตาม SDK เวอร์ชันเป้าหมาย

  • หากแอปกำหนดเป้าหมายเป็น Android 10 ขึ้นไป จะเกิด SecurityException
  • หากแอปกำหนดเป้าหมายเป็น Android 9 (API ระดับ 28) หรือต่ำกว่า เมธอดจะแสดงผล null หรือข้อมูลตัวยึดตำแหน่งหากแอปมีสิทธิ์ READ_PHONE_STATE มิเช่นนั้นจะเกิด SecurityException

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

การเข้าถึงข้อมูลในคลิปบอร์ดแบบจำกัด

เว้นแต่แอปของคุณจะเป็นโปรแกรมแก้ไขวิธีการป้อนข้อมูล (IME) เริ่มต้นหรือเป็นแอปที่ มีโฟกัสอยู่ในปัจจุบัน แอปของคุณจะเข้าถึงข้อมูลในคลิปบอร์ดบน Android 10 ขึ้นไปไม่ได้

การปกป้องหมายเลขซีเรียลของอุปกรณ์ USB

หากแอปกำหนดเป้าหมายเป็น Android 10 ขึ้นไป แอปจะอ่านหมายเลขซีเรียลไม่ได้จนกว่าผู้ใช้จะให้สิทธิ์แอปในการเข้าถึงอุปกรณ์หรืออุปกรณ์เสริม USB

ดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับอุปกรณ์ USB ได้ที่คู่มือเกี่ยวกับวิธีกำหนดค่า โฮสต์ USB

กล้องและการเชื่อมต่อ

ส่วนนี้แสดงการเปลี่ยนแปลงที่เกี่ยวข้องกับข้อมูลเมตาของกล้องและ API การเชื่อมต่อโดยเฉพาะ

การจำกัดการเข้าถึงรายละเอียดและข้อมูลเมตาของกล้อง

Android 10 เปลี่ยนขอบเขตของข้อมูลที่เมธอด getCameraCharacteristics() แสดงผลโดยค่าเริ่มต้น โดยเฉพาะอย่างยิ่ง แอปของคุณต้องมีสิทธิ์ CAMERA เพื่อ เข้าถึงข้อมูลเมตาที่อาจเจาะจงอุปกรณ์ซึ่งรวมอยู่ในค่าที่ส่งคืนของเมธอดนี้

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงเหล่านี้ได้ที่ส่วนเกี่ยวกับฟิลด์กล้องที่ต้องได้รับสิทธิ์

ข้อจำกัดในการเปิดและปิดใช้ Wi-Fi

แอปที่กำหนดเป้าหมายเป็น Android 10 ขึ้นไปจะเปิดหรือปิด Wi-Fi ไม่ได้ เมธอด WifiManager.setWifiEnabled() จะแสดงผล false เสมอ

หากต้องการแจ้งให้ผู้ใช้เปิดและปิดใช้ Wi-Fi ให้ใช้แผง การตั้งค่า

ข้อจำกัดในการเข้าถึงเครือข่าย Wi-Fi ที่กำหนดค่าไว้โดยตรง

เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ การกำหนดค่ารายการเครือข่าย Wi-Fi ด้วยตนเองจะจำกัดไว้สำหรับแอปของระบบและตัวควบคุมนโยบายอุปกรณ์ (DPC) DPC ที่กำหนดอาจเป็นเจ้าของอุปกรณ์หรือเจ้าของโปรไฟล์

หากแอปกำหนดเป้าหมายเป็น Android 10 ขึ้นไป และไม่ใช่แอปของระบบหรือ DPC วิธีการต่อไปนี้จะไม่แสดงข้อมูลที่เป็นประโยชน์

  • เมธอด getConfiguredNetworks() จะแสดงผลเป็นรายการว่างเสมอ

  • เมธอดการดำเนินการเครือข่ายแต่ละรายการที่แสดงค่าจำนวนเต็ม addNetwork() และ updateNetwork() จะแสดงผล -1 เสมอ

  • การดำเนินการเครือข่ายแต่ละรายการที่แสดงค่าบูลีน removeNetwork() reassociate() enableNetwork() disableNetwork() reconnect() และ disconnect() จะแสดงผลเป็น false เสมอ

หากแอปต้องเชื่อมต่อกับเครือข่าย Wi-Fi ให้ใช้วิธีการต่อไปนี้แทน

  • หากต้องการทริกเกอร์การเชื่อมต่อเครือข่าย Wi-Fi ในพื้นที่ทันที ให้ใช้ WifiNetworkSpecifier ในออบเจ็กต์ NetworkRequest มาตรฐาน
  • หากต้องการเพิ่มเครือข่าย Wi-Fi เพื่อพิจารณาในการให้สิทธิ์เข้าถึงอินเทอร์เน็ตแก่ผู้ใช้ ให้ทำงานกับออบเจ็กต์ WifiNetworkSuggestion คุณเพิ่มและนำเครือข่ายที่ปรากฏในกล่องโต้ตอบการเลือกเครือข่ายเชื่อมต่ออัตโนมัติออกได้โดยเรียกใช้ addNetworkSuggestions() และ removeNetworkSuggestions() ตามลำดับ วิธีการเหล่านี้ไม่จำเป็นต้องใช้สิทธิ์เข้าถึงตำแหน่ง

API โทรศัพท์ บลูทูธ และ Wi-Fi บางรายการต้องใช้สิทธิ์เข้าถึงตำแหน่งแบบละเอียด

หากแอปกำหนดเป้าหมายเป็น Android 10 ขึ้นไป แอปจะต้องมีสิทธิ์ ACCESS_FINE_LOCATION จึงจะใช้วิธีการต่างๆ ภายใน API ของ Wi-Fi, Wi-Fi Aware หรือบลูทูธได้ ส่วนต่อไปนี้แสดงรายการคลาสและเมธอดที่ได้รับผลกระทบ

โทรศัพท์

Wi-Fi

บลูทูธ

สิทธิ์

ส่วนนี้อธิบายการอัปเดตโมเดลสิทธิ์ของ Android

จำกัดสิทธิ์เข้าถึงเนื้อหาในหน้าจอ

Android 10 จะป้องกันการเข้าถึงเนื้อหาบนหน้าจอของอุปกรณ์โดยไม่แจ้งให้ทราบด้วยการเปลี่ยนขอบเขตของสิทธิ์ READ_FRAME_BUFFER, CAPTURE_VIDEO_OUTPUT และ CAPTURE_SECURE_VIDEO_OUTPUT เพื่อปกป้องเนื้อหาบนหน้าจอของผู้ใช้ ตั้งแต่ Android 10 เป็นต้นมา สิทธิ์เหล่านี้จะเป็นsignature-access เท่านั้น

แอปที่ต้องการเข้าถึงเนื้อหาบนหน้าจอของอุปกรณ์ควรใช้ MediaProjection API ซึ่งจะแสดงข้อความแจ้งที่ขอให้ผู้ใช้ให้ความยินยอม

การตรวจสอบสิทธิ์ที่แสดงต่อผู้ใช้ในแอปเดิม

หากแอปกำหนดเป้าหมายเป็น Android 5.1 (API ระดับ 22) หรือต่ำกว่า ผู้ใช้จะเห็นหน้าจอการให้สิทธิ์ เมื่อใช้แอปในอุปกรณ์ที่ใช้ Android 10 หรือ สูงกว่าเป็นครั้งแรก ดังที่แสดงในรูปที่ 1 หน้าจอนี้จะให้ โอกาสผู้ใช้ในการเพิกถอนสิทธิ์เข้าถึงที่ระบบเคยให้ แก่แอปของคุณในระหว่างการติดตั้ง

ภาพหน้าจอของกล่องโต้ตอบ
รูปที่ 1 กล่องโต้ตอบที่แสดงต่อผู้ใช้ซึ่งอนุญาตให้ตรวจสอบสิทธิ์เดิม

การจดจำกิจกรรมการเคลื่อนไหวร่างกาย

Android 10 เปิดตัวสิทธิ์รันไทม์ android.permission.ACTIVITY_RECOGNITION สำหรับแอปที่ต้องตรวจหาจำนวนก้าวของผู้ใช้หรือ จัดประเภทกิจกรรมการเคลื่อนไหวร่างกายของผู้ใช้ เช่น การเดิน การปั่นจักรยาน หรือการเคลื่อนที่ใน ยานพาหนะ ฟีเจอร์นี้ออกแบบมาเพื่อให้ผู้ใช้เห็นวิธีใช้ข้อมูลเซ็นเซอร์ของอุปกรณ์ในส่วนการตั้งค่า

ไลบรารีบางรายการภายในบริการของ Google Play เช่น Activity Recognition API และ Google Fit API จะไม่แสดงผลลัพธ์จนกว่าผู้ใช้จะให้สิทธิ์นี้แก่แอปของคุณ

เซ็นเซอร์ในตัวเพียงอย่างเดียวในอุปกรณ์ที่กำหนดให้คุณต้องประกาศสิทธิ์นี้คือเซ็นเซอร์ตัวนับก้าวและตัวตรวจจับก้าว

หากแอปกำหนดเป้าหมายเป็น Android 9 (API ระดับ 28) หรือต่ำกว่า ระบบจะให้สิทธิ์ android.permission.ACTIVITY_RECOGNITION แก่แอปโดยอัตโนมัติตามความจำเป็น หากแอปเป็นไปตามเงื่อนไขต่อไปนี้

  • ไฟล์ Manifest มีสิทธิ์ com.google.android.gms.permission.ACTIVITY_RECOGNITION
  • ไฟล์ Manifest ไม่มีสิทธิ์ android.permission.ACTIVITY_RECOGNITION

หากระบบให้สิทธิ์ android.permission.ACTIVITY_RECOGNITION โดยอัตโนมัติ แอปจะยังคงมีสิทธิ์ดังกล่าวหลังจากที่คุณอัปเดตแอปให้กำหนดเป้าหมายเป็น Android 10 อย่างไรก็ตาม ผู้ใช้สามารถเพิกถอนสิทธิ์นี้ได้ทุกเมื่อในการตั้งค่าระบบ

นำกลุ่มสิทธิ์ออกจาก UI แล้ว

ตั้งแต่ Android 10 เป็นต้นไป แอปจะค้นหาวิธีจัดกลุ่มสิทธิ์ใน UI ไม่ได้