เราขอแนะนำให้นักพัฒนาแอปส่งคำขอโดยใช้เนื้อหาคร่าวๆ เท่านั้นเพื่อเคารพความเป็นส่วนตัวของผู้ใช้ สิทธิ์เข้าถึงตำแหน่ง โดยทั่วไปแอปที่ต้องการตำแหน่งคร่าวๆ โดยประมาณ ใช้ตำแหน่งเครือข่าย (FLP) เนื่องจากมีความรวดเร็วและใช้พลังงานน้อยลง
ตำแหน่งเครือข่ายในแอปยานยนต์เมื่อเทียบกับอุปกรณ์เคลื่อนที่ที่ใช้ Android อาจเป็นสิ่งท้าทายมากยิ่งขึ้น คุณสามารถใช้ API ของ Android ได้ 2 แบบ ดังนี้
LocationManager API กำหนดให้คุณต้องระบุแอปที่ต้องการ ผู้ให้บริการตำแหน่ง
Google Play Services API ช่วยให้ ทำงานร่วมกับตำแหน่งด้วยการแนะนำผู้ให้บริการ Fused Location (FLP)
แอปยานยนต์จำนวนมากใช้ FLP จาก Google Play Services API (GPS) API แทน LM FLP เลือกผู้ให้บริการตำแหน่งที่เหมาะสมที่สุดตามคำขอตำแหน่ง เกณฑ์และนโยบาย (กำลังและความแม่นยำ) ที่ยานพาหนะต้องการ
คุณสามารถเลือกที่จะส่งคำขอและใช้
NETWORK_PROVIDER
ใน LM และ
GPS_PROVIDER
สำหรับตำแหน่งโดยละเอียด ซึ่งใช้
android.permission.ACCESS_FINE_LOCATION
สิทธิ์ ใน API 31 FUSED_PROVIDER
ซึ่งแต่เดิมจะสามารถเข้าถึงได้ผ่าน GPS API เท่านั้น ขณะนี้
เป็นผู้ให้บริการตำแหน่งสำหรับ LM คุณสามารถดู
การนำ FLP มาใช้ใน
FusedLocationProvider.java
แม้ว่าคุณจะใช้ GPS_PROVIDER
ที่มีสิทธิ์คร่าวๆ เท่านั้นได้
ของเฟรมเวิร์กจะลดความถูกต้องลงอย่างไม่เป็นจริง เพื่อให้สอดคล้องกับความคาดหวัง
เหมาะสมเล็กน้อยสำหรับนักพัฒนาซอฟต์แวร์ที่กำหนดเป้าหมายไปที่โทรศัพท์ Android เนื่องจากโดยรวมแล้ว
ความพร้อมใช้งานไม่ดีและมักจะช้ากว่าเพื่อให้ได้ตำแหน่งคร่าวๆ
ตำแหน่งเครือข่ายในยานยนต์
NETWORK_PROVIDER
ที่ใช้ในโทรศัพท์ Android (ที่มีบริการของ Google Mobile) มี
เปลี่ยนจากการระบุตำแหน่งโดยใช้เสาสัญญาณมือถือใกล้เคียงเพียงอย่างเดียวเป็น
และยังใช้จุดเข้าใช้งาน Wi-Fi หรือแม้แต่บีคอนบลูทูธ (BT) การใช้
NETWORK_PROVIDER
อาจต้องใช้การเชื่อมต่ออินเทอร์เน็ต
สำหรับแอปยานยนต์ ข้อจำกัดด้านอุปกรณ์จะแตกต่างกันไป เนื่องจาก GNSS เปิดอยู่ตามปกติ จะไม่มีการลงโทษใดๆ เนื่องจากพลังงานและการใช้งานแบตเตอรี่เพิ่มขึ้น เพื่อ ทำให้ระยะเวลาทำงานของ IVI ไม่ลดลง เรามุ่งมั่นที่จะลดการแลกเปลี่ยนข้อมูลให้เหลือน้อยที่สุด กับเซิร์ฟเวอร์ของเรา
แอปจำนวนมากใช้ FLP จาก Play API แทน LM โดยตรงเป็น FLP ทำสิ่งที่ชาญฉลาดโดยอัตโนมัติ โดยใช้ผู้ให้บริการตำแหน่งที่จะ เป็นไปตามเกณฑ์/นโยบายคำขอตำแหน่ง (ได้แก่ อำนาจและความถูกต้อง) ภายใต้ ขั้นสูง
ยานพาหนะต่างจากอุปกรณ์เคลื่อนที่ตรงที่แทบดูเหมือนกระโดดจากสถานที่หนึ่งไปยังอีกที่หนึ่ง อีกรายการ โดยมากแล้ว ตำแหน่งยานพาหนะจะทราบจากระบบภายใน
ผู้ให้บริการตำแหน่งเครือข่าย
รถยนต์ส่วนใหญ่ไม่ใช้ API โทรศัพท์ที่จำเป็นเพื่อรับข้อมูลที่จำเป็น ที่ Cell ID (และความแรงของสัญญาณ) ด้วยเหตุนี้ เราจึงลดจำนวนข้อมูล แต่ไม่มีการติดตั้งใช้งาน NLP เพิ่มเติม
ผู้ให้บริการ Fused Location
FLP บนอุปกรณ์เคลื่อนที่นั้น นอกเหนือจากการใช้ผู้ให้บริการเครือข่ายและ GPS อย่างชาญฉลาดแล้ว
ที่เหมาะสม ก็ผสานรวมข้อมูลจากเซ็นเซอร์อื่นๆ เพื่อปรับปรุง
คุณภาพของสถานที่ การนำ FLP ของ Automotive มาใช้ใน
ใช้ประโยชน์จากสมมติฐานและการใช้งานที่กล่าวไว้ข้างต้น
GPS_PROVIDER
เป็นแหล่งที่มาพื้นฐานตลอดเวลา ทำให้ตำแหน่ง
จาก GNSS เพิ่มข้อผิดพลาดบางอย่างเพื่อให้ไม่ถูกต้องมากขึ้นเมื่อจำเป็น ตัวอย่างเช่น
เมื่อมีการระบุตําแหน่งคร่าวๆ แก่ลูกค้า
ดังนั้นในบางสถานการณ์ จึงอาจใช้เวลานานกว่าปกติสำหรับ ตำแหน่งแรกที่จะพร้อมใช้งาน เช่น ครั้งแรกที่รถ หรือ เพื่อให้เข้าใจได้ดียิ่งขึ้น จะมีการใช้ระบบย่อยของตำแหน่งสถานที่หรือหลังจากถูกลากจูง
ออกแบบแอปเพื่อกำหนดเป้าหมายการใช้งานบนอุปกรณ์เคลื่อนที่และยานยนต์
เราขอแนะนำว่าแอปที่กำหนดเป้าหมายเป็นอุปกรณ์เคลื่อนที่และอุปกรณ์ยานยนต์ที่ไม่
ต้องใช้คำขอความแม่นยำที่มีคุณภาพสูงขึ้น
android.permission.ACCESS_COARSE_LOCATION
เท่านั้นและกลับไปใช้ FLP
หากมี หรือหากเป็นกรณีสุดท้าย โปรดใช้ GPS_PROVIDER
โดยตรง
ที่มีสิทธิ์แบบเดียวกัน เฟรมเวิร์กจะลดความแม่นยําของข้อมูลเบื้องหลัง
ตำแหน่งของ GNSS จะสอดคล้องกับความคาดหวังของ API ดูข้อมูลเพิ่มเติมได้ที่ความแม่นยำ
นอกจากนี้ แอปเหล่านี้ต้องประกาศอย่างชัดเจนถึง
android.hardware.location.network
แสดงไม่บังคับในไฟล์ Manifest
เช่น
<uses-feature android:name="android.hardware.location.network" android:required="false" />
วิธีนี้จะช่วยให้มั่นใจว่ามีความเข้ากันได้มากที่สุดกับอุปกรณ์ในประเภทธุรกิจและ ซึ่งก็คือความพร้อมใช้งานสูงสุดของแอปโดยไม่มีความแตกต่างของโค้ดเพื่อให้ ตำแหน่งเมื่อจำเป็น