Android 10 (API ระดับ 29) มีฟีเจอร์และการเปลี่ยนแปลงด้านลักษณะการทำงานหลายอย่างเพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ให้ดียิ่งขึ้น การเปลี่ยนแปลงเหล่านี้จะเพิ่มความโปร่งใสและการควบคุมที่ผู้ใช้มีต่อข้อมูลของตน รวมถึงความสามารถที่ผู้ใช้มอบให้แก่แอป ฟีเจอร์เหล่านี้อาจหมายความว่าลักษณะการทำงานหรือข้อมูลบางอย่างที่แอปของคุณใช้อาจทำงานแตกต่างจากแพลตฟอร์มเวอร์ชันเก่า ผลกระทบต่อแอปควรมีน้อยที่สุดหากแอปของคุณเป็นไปตามแนวทางปฏิบัติแนะนำในปัจจุบันในการจัดการข้อมูลผู้ใช้
หน้านี้จะแสดงข้อมูลสรุปของการเปลี่ยนแปลงแต่ละรายการ
การเปลี่ยนแปลงที่สำคัญ
ส่วนนี้ประกอบด้วยการเปลี่ยนแปลงที่สำคัญใน Android 10 ที่เกี่ยวข้องกับความเป็นส่วนตัว
การเข้าถึงพื้นที่เก็บข้อมูลภายนอกที่มีขอบเขตระดับไฟล์และสื่อของแอป
โดยค่าเริ่มต้น แอปที่กำหนดเป้าหมายเป็น Android 10 ขึ้นไปจะได้รับสิทธิ์เข้าถึงแบบจำกัดที่จัดเก็บข้อมูลภายนอก หรือพื้นที่เก็บข้อมูลแบบจำกัด แอปดังกล่าวจะดูไฟล์ประเภทต่อไปนี้ภายในอุปกรณ์จัดเก็บข้อมูลภายนอกได้โดยไม่ต้องขอสิทธิ์ใดๆ ที่เกี่ยวข้องกับพื้นที่เก็บข้อมูลจากผู้ใช้
- ไฟล์ในไดเรกทอรีเฉพาะแอป ซึ่งเข้าถึงได้โดยใช้
getExternalFilesDir()
- รูปภาพ วิดีโอ และคลิปเสียงที่แอปสร้างขึ้นจากที่เก็บสื่อ
ดูข้อมูลเพิ่มเติมเกี่ยวกับพื้นที่เก็บข้อมูลแบบจำกัดขอบเขต รวมถึงวิธีแชร์ เข้าถึง และแก้ไขไฟล์ที่บันทึกไว้ในอุปกรณ์จัดเก็บข้อมูลภายนอกได้จากคำแนะนำเกี่ยวกับวิธีจัดการไฟล์ในพื้นที่เก็บข้อมูลภายนอก และวิธีเข้าถึงและแก้ไขไฟล์สื่อ
การเข้าถึงตำแหน่งอุปกรณ์ในเบื้องหลังต้องได้รับสิทธิ์
Android 10 เปิดตัวสิทธิ์ ACCESS_BACKGROUND_LOCATION
เพื่อรองรับการควบคุมเพิ่มเติมที่ผู้ใช้มีสิทธิ์ในการเข้าถึงข้อมูลตําแหน่งของแอป
สิทธิ์ ACCESS_BACKGROUND_LOCATION
จะส่งผลต่อการเข้าถึงตำแหน่งของแอปเมื่อทำงานในเบื้องหลังเท่านั้น ซึ่งแตกต่างจากสิทธิ์ ACCESS_FINE_LOCATION
และ ACCESS_COARSE_LOCATION
ระบบจะถือว่าแอปเข้าถึงตำแหน่งในเบื้องหลัง เว้นแต่ว่าแอปจะเป็นไปตามเงื่อนไขข้อใดข้อหนึ่งต่อไปนี้
- กิจกรรมที่เป็นของแอปจะปรากฏขึ้น
แอปกำลังใช้บริการที่ทำงานอยู่เบื้องหน้าซึ่งประกาศประเภทบริการที่ทำงานอยู่เบื้องหน้าเป็น
location
หากต้องการประกาศประเภทบริการที่ทำงานอยู่เบื้องหน้าสำหรับบริการในแอป ให้ตั้งค่า
targetSdkVersion
หรือcompileSdkVersion
ของแอปเป็น29
ขึ้นไป ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่บริการที่ทำงานอยู่เบื้องหน้าสามารถดำเนินการที่ผู้ใช้เริ่มไว้ต่อไปซึ่งจำเป็นต้องเข้าถึงตำแหน่ง
หากแอปสร้างและตรวจสอบเขตพื้นที่เสมือน รวมถึงกำหนดเป้าหมายเป็น 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 เป้าหมายและสิทธิ์ที่กําหนดไว้ ดังที่แสดงในตารางต่อไปนี้
เวอร์ชันแพลตฟอร์มเป้าหมาย | สิทธิ์แบบหยาบหรือละเอียด ได้รับอนุญาตไหม |
สิทธิ์เข้าถึงในเบื้องหลัง ที่กําหนดในไฟล์ 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 และหมายเลขซีเรียล
โดยวิธีการที่ได้รับผลกระทบมีดังนี้
Build
TelephonyManager
หากแอปของคุณไม่มีสิทธิ์และคุณพยายามขอข้อมูลเกี่ยวกับตัวระบุที่รีเซ็ตไม่ได้อยู่ดี การตอบสนองของแพลตฟอร์มจะแตกต่างกันไปตามเวอร์ชัน SDK เป้าหมาย ดังนี้
- หากแอปกำหนดเป้าหมายเป็น Android 10 ขึ้นไป ระบบจะแสดง
SecurityException
- หากแอปกำหนดเป้าหมายเป็น Android 9 (API ระดับ 28) หรือต่ำกว่า เมธอดนี้จะแสดง
null
หรือข้อมูลตัวยึดตำแหน่งหากแอปมีสิทธิ์READ_PHONE_STATE
มิเช่นนั้นSecurityException
จะปรากฏขึ้น
กรณีการใช้งานหลายกรณีไม่จำเป็นต้องใช้ตัวระบุอุปกรณ์ที่รีเซ็ตไม่ได้ ตัวอย่างเช่น หากแอปใช้ตัวระบุอุปกรณ์ที่รีเซ็ตไม่ได้เพื่อวัตถุประสงค์ในการติดตามโฆษณาหรือการวิเคราะห์ผู้ใช้ ให้ใช้รหัสโฆษณา Android กับกรณีการใช้งานที่เฉพาะเจาะจงเหล่านั้นแทน ดูข้อมูลเพิ่มเติมได้ที่แนวทางปฏิบัติแนะนำสำหรับตัวระบุที่ไม่ซ้ำกัน
การเข้าถึงข้อมูลคลิปบอร์ดแบบจํากัด
แอปของคุณจะเข้าถึงข้อมูลในคลิปบอร์ดใน Android 10 ขึ้นไปไม่ได้ เว้นแต่จะเป็นเครื่องมือแก้ไขวิธีการป้อนข้อมูล (IME) เริ่มต้นหรือเป็นแอปที่มีโฟกัสอยู่ในขณะนี้
การป้องกันหมายเลขซีเรียลของอุปกรณ์ 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
เพื่อใช้วิธีการต่างๆ ภายใน Wi-Fi, Wi-Fi Aware หรือ API บลูทูธ ส่วนต่อไปนี้จะแสดงคลาสและเมธอดที่ได้รับผลกระทบ
โทรศัพท์
TelephonyManager
getCellLocation()
getAllCellInfo()
requestNetworkScan()
requestCellInfoUpdate()
getAvailableNetworks()
getServiceState()
TelephonyScanManager
requestNetworkScan()
TelephonyScanManager.NetworkScanCallback
onResults()
PhoneStateListener
onCellLocationChanged()
onCellInfoChanged()
onServiceStateChanged()
Wi-Fi
WifiManager
startScan()
getScanResults()
getConnectionInfo()
getConfiguredNetworks()
WifiAwareManager
WifiP2pManager
WifiRttManager
บลูทูธ
BluetoothAdapter
startDiscovery()
startLeScan()
BluetoothAdapter.LeScanCallback
BluetoothLeScanner
startScan()
สิทธิ์
ส่วนนี้อธิบายการอัปเดตโมเดลสิทธิ์ของ Android
จำกัดการเข้าถึงเนื้อหาในหน้าจอ
Android 10 จะป้องกันไม่ให้แอปเข้าถึงเนื้อหาบนหน้าจอของอุปกรณ์โดยอัตโนมัติโดยเปลี่ยนขอบเขตของสิทธิ์ READ_FRAME_BUFFER
, CAPTURE_VIDEO_OUTPUT
และ CAPTURE_SECURE_VIDEO_OUTPUT
เพื่อปกป้องเนื้อหาบนหน้าจอของผู้ใช้ ตั้งแต่ Android 10 เป็นต้นไป สิทธิ์เหล่านี้จะเป็นสิทธิ์เข้าถึงลายเซ็นเท่านั้น
แอปที่ต้องเข้าถึงเนื้อหาบนหน้าจอของอุปกรณ์ควรใช้ MediaProjection
API ซึ่งจะแสดงข้อความแจ้งให้ผู้ใช้ให้ความยินยอม
การตรวจสอบสิทธิ์ที่แสดงต่อผู้ใช้ในแอปเดิม
หากแอปกำหนดเป้าหมายเป็น Android 5.1 (API ระดับ 22) หรือต่ำกว่า ผู้ใช้จะเห็นหน้าจอสิทธิ์เมื่อใช้แอปในอุปกรณ์ที่ใช้ Android 10 ขึ้นไปเป็นครั้งแรก ดังที่แสดงในรูปที่ 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 ไม่ได้