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

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 เป้าหมายและสิทธิ์ที่กำหนดไว้ ดังที่แสดงในตารางต่อไปนี้

ตารางที่ 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 สำหรับ Use Case ที่เฉพาะเจาะจงเหล่านั้นแทน ดูข้อมูลเพิ่มเติมได้ที่แนวทางปฏิบัติแนะนำสำหรับตัวระบุที่ไม่ซ้ำกัน

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

แอปของคุณจะเข้าถึงข้อมูลคลิปบอร์ดใน 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 เพื่อใช้เมธอดต่างๆ ภายใน API ของ Wi-Fi, Wi-Fi Aware หรือบลูทูธ ส่วนต่อไปนี้จะแสดงรายการคลาสและเมธอดที่ได้รับผลกระทบ

โทรศัพท์

Wi-Fi

บลูทูธ

สิทธิ์

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

จำกัดการเข้าถึงเนื้อหาบนหน้าจอ

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

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

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

หากแอปกำหนดเป้าหมายเป็น 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 ได้