เข้าถึงตำแหน่งในเบื้องหลัง

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

รายการตรวจสอบการเข้าถึงตำแหน่งในเบื้องหลัง

ใช้รายการตรวจสอบต่อไปนี้เพื่อระบุตรรกะการเข้าถึงตำแหน่งที่เป็นไปได้ในเบื้องหลัง

  • ในไฟล์ Manifest ของแอป ให้ตรวจสอบสิทธิ์ ACCESS_COARSE_LOCATION และสิทธิ์ ACCESS_FINE_LOCATION ยืนยันว่าแอปของคุณต้องใช้สิทธิ์เข้าถึงตำแหน่งเหล่านี้

    • หากแอปกำหนดเป้าหมายเป็น Android 10 (API ระดับ 29) ขึ้นไป ให้ตรวจสอบสิทธิ์ ACCESS_BACKGROUND_LOCATION ด้วย ยืนยันว่าแอปของคุณมีฟีเจอร์ที่ต้องใช้สิทธิ์ดังกล่าว
  • มองหาการใช้ API การเข้าถึงตำแหน่ง เช่น ผู้ให้บริการ Fused Location API, Geofencing API หรือ LocationManager API ภายในโค้ด เช่น ในโครงสร้างต่อไปนี้

  • หากแอปใช้ SDK หรือไลบรารีที่เข้าถึงตำแหน่ง การเข้าถึงนี้จะถือว่ามาจากแอปของคุณ หากต้องการพิจารณาว่า SDK หรือไลบรารีจำเป็นต้องเข้าถึงตำแหน่งหรือไม่ โปรดดูเอกสารประกอบของไลบรารี

ประเมินการเข้าถึงตำแหน่งในเบื้องหลัง

หากพบว่าแอปเข้าถึงตำแหน่งในเบื้องหลัง ให้พิจารณาดำเนินการต่อไปนี้

  • ประเมินว่าสิทธิ์เข้าถึงตำแหน่งในเบื้องหลังมีความสำคัญต่อฟังก์ชันหลักของแอปหรือไม่
  • หากไม่จำเป็นต้องเข้าถึงตำแหน่งในเบื้องหลัง ให้นำสิทธิ์ดังกล่าวออก

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

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

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

การอัปเดตตำแหน่งในเบื้องหลังแบบจำกัด

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

แหล่งข้อมูลเพิ่มเติม

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ตำแหน่งในเบื้องหลังได้จากแหล่งข้อมูลต่อไปนี้

วิดีโอ

วิธีค้นหาการใช้งานตำแหน่งในเบื้องหลังที่เป็นไปได้

ตัวอย่าง

ตัวอย่างตำแหน่งในเบื้องหลังแสดงแนวทางปฏิบัติแนะนำสำหรับการเข้าถึงตำแหน่งเมื่อแอปทำงานอยู่เบื้องหลัง