ดูตำแหน่งคร่าวๆ

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

  • LocationManager API กำหนดให้คุณต้องใช้ requestLocationUpdates เพื่อระบุผู้ให้บริการตำแหน่งที่ต้องการอย่างชัดแจ้ง

  • API บริการ Google Play มอบวิธีที่ง่ายยิ่งขึ้น ใช้งานตำแหน่งใน FusedLocationProviderClient

แอปยานยนต์จำนวนมากใช้ FLP จาก Google Play Services API แทน LocationManager FLP เลือกผู้ให้บริการตำแหน่งที่เหมาะสมโดยอิงตามตำแหน่ง เกณฑ์และนโยบาย (กำลังและความแม่นยำ) ที่ยานพาหนะต้องการ

คุณสามารถเลือกที่จะส่งคำขอและใช้ NETWORK_PROVIDER และ GPS_PROVIDER สำหรับ ตำแหน่งอย่างละเอียด ซึ่งใช้ android.permission.ACCESS_FINE_LOCATION สิทธิ์ ใน Android 12 (API ระดับ 31) ขึ้นไป ฟิลด์ FUSED_PROVIDER ซึ่งก่อนหน้านี้จะเข้าถึงได้ผ่าน API บริการ Google Play เท่านั้น สามารถใช้เป็นผู้ให้บริการตำแหน่งแก่ LocationManager คุณสามารถดูการใช้งาน FLP ได้ใน FusedLocationProvider.java

แม้ว่าคุณจะใช้ GPS_PROVIDER ที่มีสิทธิ์ในระดับคร่าวๆ เท่านั้นได้ แต่ กรอบงานจะลดทอนความถูกต้องลงอย่างไม่เป็นจริง เพื่อให้เป็นไปตามความคาดหวัง เหมาะสมเล็กน้อยสำหรับนักพัฒนาซอฟต์แวร์ที่กำหนดเป้าหมายไปที่โทรศัพท์ Android เนื่องจากโดยรวมแล้ว ความพร้อมใช้งานไม่ดีและมักจะช้ากว่าเพื่อให้ได้ตำแหน่งคร่าวๆ

ตำแหน่งเครือข่ายในยานยนต์

NETWORK_PROVIDER ใช้ในโทรศัพท์ Android (ที่มีบริการของ Google Mobile) ระบุตำแหน่งตามเสาสัญญาณมือถือ จุดเข้าใช้งาน Wi-Fi และ บีคอนบลูทูธ (BT) ด้วยเหตุนี้ NETWORK_PROVIDER จึงอาจต้องใช้ข้อมูล การเชื่อมต่อ

สำหรับแอปยานยนต์ ข้อจำกัดด้านอุปกรณ์จะแตกต่างกันไป เนื่องจากการนำทางทั่วโลกของ Gthe โดยปกติระบบดาวเทียม (GNSS) จะเปิด และจะไม่มีการลงโทษเนื่องจาก พลังงานและการใช้งานแบตเตอรี่เพิ่มขึ้น ด้วยเหตุนี้ ระยะเวลาทำงานของ IVI จะไม่ลดลง เราพยายามลดข้อมูลที่แลกเปลี่ยนกับเซิร์ฟเวอร์ของเราให้เหลือน้อยที่สุด

แอปจำนวนมากใช้ FLP จาก Play API แทน LocationManager โดยตรง เนื่องจาก FLP จะทำสิ่งที่ชาญฉลาดโดยอัตโนมัติด้วยการใช้ตำแหน่งที่ตั้ง ผู้ให้บริการสามารถปฏิบัติตามเกณฑ์/นโยบายคำขอตำแหน่งได้ดีที่สุด (ได้แก่ และความถูกต้อง)

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

ผู้ให้บริการตำแหน่งเครือข่าย (NLP)

รถยนต์ส่วนใหญ่ไม่ใช้ 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" />

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