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 และหมายเลขซีเรียล
วิธีการที่ได้รับผลกระทบมีดังนี้
BuildTelephonyManager
หากแอปของคุณไม่มีสิทธิ์และคุณพยายามขอข้อมูลเกี่ยวกับตัวระบุที่รีเซ็ตไม่ได้ การตอบสนองของแพลตฟอร์มจะแตกต่างกันไปตามเวอร์ชัน 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 หรือบลูทูธ ส่วนต่อไปนี้จะแสดงรายการคลาสและเมธอดที่ได้รับผลกระทบ
โทรศัพท์
TelephonyManagergetCellLocation()getAllCellInfo()requestNetworkScan()requestCellInfoUpdate()getAvailableNetworks()getServiceState()
TelephonyScanManagerrequestNetworkScan()
TelephonyScanManager.NetworkScanCallbackonResults()
PhoneStateListeneronCellLocationChanged()onCellInfoChanged()onServiceStateChanged()
Wi-Fi
WifiManagerstartScan()getScanResults()getConnectionInfo()getConfiguredNetworks()
WifiAwareManagerWifiP2pManagerWifiRttManager
บลูทูธ
BluetoothAdapterstartDiscovery()startLeScan()
BluetoothAdapter.LeScanCallbackBluetoothLeScannerstartScan()
สิทธิ์
ส่วนนี้อธิบายการอัปเดตโมเดลสิทธิ์ของ 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 หน้าจอนี้เปิดโอกาสให้ผู้ใช้เพิกถอนสิทธิ์เข้าถึงที่ระบบเคยให้ไว้กับแอปของคุณเมื่อติดตั้ง
การจดจำกิจกรรมการเคลื่อนไหวร่างกาย
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 ได้