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

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

การเปลี่ยนแปลงใน Android 14 ส่งผลต่อ Navigation SDK อย่างไร

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

วิธีที่ Navigation SDK ช่วยลดปัญหานี้

ตั้งแต่เวอร์ชัน 5.3.2 เป็นต้นไป Navigation SDK จะจัดการ SecurityException นี้โดยไม่ส่งผลกระทบต่อแอป ซึ่งช่วยให้การนำทางทำงานต่อไปในเบื้องหลัง นอกจากนี้ Navigation SDK จะรวมสิทธิ์ ACCESS_BACKGROUND_LOCATION ไว้ใน AndroidManifest ด้วย วิธีนี้ทำให้แอปไม่ต้องประกาศสิทธิ์นั้นเอง เนื่องจากการผสานด้วย Gradle จะจัดการเอง อย่างไรก็ตาม หากไม่มีการแสดงการแจ้งเตือนแก่ผู้ใช้ก่อนที่แอปจะเข้าไปอยู่ในพื้นหลัง SDK การนำทางจะอาศัยระบบในการจัดเตรียมการอัปเดตตำแหน่ง การอัปเดตระบบเหล่านี้อาจไม่บ่อยครั้งหรือแม่นยำนัก และทำให้ประสบการณ์การนำทางไม่ดีเท่าที่ควร ด้วยเหตุนี้ เราขอแนะนำให้คุณแจ้งผู้ใช้เกี่ยวกับการเข้าถึงตำแหน่งในเบื้องหลังด้วย

สิ่งที่นักพัฒนาแอปทำได้เพื่อปรับปรุงความแม่นยำของตำแหน่งสำหรับการนำทาง

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

กล่องโต้ตอบสิทธิ์
ตัวอย่าง

ดูข้อมูลเพิ่มเติมเกี่ยวกับการแจ้งผู้ใช้ให้เข้าถึงตำแหน่งได้ที่ขอสิทธิ์เข้าถึงตำแหน่ง | เซ็นเซอร์และตำแหน่ง | นักพัฒนาแอป Android