การอนุญาตตำแหน่ง Tristate

การอนุญาตตำแหน่ง Tristate ใน Android 10 ให้ผู้ใช้ควบคุมวิธีที่แอปเข้าถึงตำแหน่งอุปกรณ์ได้มากขึ้น

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

โดยปกติผู้ใช้จะเห็นสามตัวเลือกที่แสดงในรูปที่ 1 อย่างไรก็ตาม มีกรณีการใช้งานที่ต้องการเพียงสองตัวเลือกเหล่านี้ และในกรณีดังกล่าวจะแสดงเพียงสองตัวเลือกเท่านั้น

Tristate location permissions screen
หน้าจอรูปที่ 1 Tristate การแจ้งเตือน

นี่คือสามตัวเลือก:

  • ให้ทุกเวลา: ตำแหน่งของอุปกรณ์เป็นที่รู้จักกันเพื่อ app แม้ในขณะที่แอปไม่ได้อยู่ในการใช้งาน (ทำงานในพื้นหลัง) ซึ่งเทียบเท่ากับการอนุญาตใน Android 9 และต่ำกว่า
  • อนุญาตให้เฉพาะในขณะที่ app มีการใช้งาน: (หน้าเท่านั้น) ตำแหน่งของอุปกรณ์เป็นเพียงมองเห็น app เมื่อมันทำงานอย่างแข็งขัน
  • ปฏิเสธ: ตำแหน่งของอุปกรณ์จะไม่สามารถมองเห็นแอป สิ่งนี้เหมือนกับการปฏิเสธการอนุญาตใน Android 9 และต่ำกว่า

ผู้ใช้จะได้รับแจ้งให้อนุญาตการเข้าถึงตำแหน่งเมื่อแอพขออนุญาต

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

กล่องโต้ตอบจะปรากฏภายใต้เงื่อนไขเหล่านี้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 10:

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

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

ผลกระทบ

คุณลักษณะการอนุญาตตำแหน่ง tristate มีผลกับแอปที่ต้องการการเข้าถึงตำแหน่งของอุปกรณ์ขณะทำงานในเบื้องหลัง และจำเป็นใน Android 10

คุณอาจเปลี่ยนรหัสของคุณ แต่คุณไม่อาจเปลี่ยนแปลงหรือกำหนดลักษณะการทำงานได้รับอนุญาตที่เกี่ยวข้องในกรอบ

การดำเนินการ

การอนุญาตตำแหน่ง Tristate ใช้กับแอปใน Android 10 โดยไม่คำนึงถึง SDK เป้าหมายของแอป

สำหรับข้อมูลเกี่ยวกับการดำเนินการกรณีการใช้งานแอปของคุณ (ในการอัพเกรด) หมายถึง การออกแบบสำหรับอุปกรณ์สถานการณ์การอัพเกรด ส่วนในเอกสารนักพัฒนา

เพื่อดูวิธีการเปิดใช้งานการเข้าถึงสำหรับกรณีการใช้งานที่แตกต่างกัน (เช่นกำหนดให้การเข้าถึงตำแหน่งพื้นหลังสำหรับปพลิเคชันเช่น Google Maps หรือบริการ Google Play) ดูหัวข้อเหล่านี้ใน การเข้าถึง App เพื่อตำแหน่งของอุปกรณ์ หน้านี้:

การเข้าถึงตำแหน่งในแอป

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

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

สิทธิ์เหล่านี้ใช้กับคำขอตำแหน่งทั้งหมด ปพลิเคชันที่มีการอนุญาตให้พื้นหลังเท่านั้นในขณะที่การใช้สิทธิ์ของแอปไม่ได้รับอนุญาต Wi-Fi หรือสแกนมือถือ

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

การอัพเกรดระบบปฏิบัติการ

ในการอัปเกรดระบบปฏิบัติการเป็น Android 10 การอนุญาตตำแหน่งของแอปจะแปลตามข้อมูลต่อไปนี้:

  • เมื่อวันที่กลายเป็นอนุญาตเฉพาะในขณะที่การใช้งาน
  • ปิดยังคงปิด (ปฏิเสธ)
  • การเข้าถึงตำแหน่งก่อนได้รับอนุญาตให้กลายเป็นเพียงในขณะที่ใช้ pre-ทุน