API การข้ามตำแหน่งยานยนต์

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

  • Android 12 ไม่มี API สาธารณะสำหรับการดำเนินการนี้ แอปตัวช่วยของผู้ขับควรขออัปเดตตำแหน่งตามปกติ
  • Android 13 ขึ้นไปต้องส่งคำขอตำแหน่ง เพื่อใช้ LocationManager.requestLocationUpdates() และผ่าน กำหนดค่าออบเจ็กต์ LocationRequest รายการด้วยแล้ว LocationRequest.setAdasGnssBypass(true)

ใช้ API การข้ามตำแหน่งตัวช่วยของผู้ขับ

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

ตรวจสอบสถานะสวิตช์ตัวช่วยของผู้ขับ

ใน Android 13 ขึ้นไป คุณตรวจสอบสถานะสวิตช์ตัวช่วยของผู้ขับได้ ก่อนที่จะขอการอัปเดตตำแหน่ง

// Returns the current status of "Use location for driver assistance".
locationManager.isAdasGnssLocationEnabled();

เรียกใช้คำสั่ง Android Debug Bridge (ADB)

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

  1. วิธีใช้คำสั่ง ADB เพื่อตรวจสอบหรือเปลี่ยนสถานะ
    // Gets the status of ADAS location.
    adb shell cmd location is-adas-gnss-location-enabled
    
    // Enables ADAS location.
    adb shell cmd location set-adas-gnss-location-enabled true
    
    // Disables ADAS location.
    adb shell cmd location set-adas-gnss-location-enabled false

กำหนดสิทธิ์

โปรดดูข้อมูลต่อไปนี้สำหรับ Android รุ่นที่เจาะจงเวอร์ชัน

  1. ใน Android 12 แอปตัวช่วยของผู้ขับต้องมี การตั้งค่า WRITE_SECURE สิทธิ์
  2. ใน Android 13 ขึ้นไป ต้องมีสิทธิ์ LOCATION_BYPASS

เพิ่มแอปลงในรายการที่อนุญาตของอุปกรณ์

ในไดเรกทอรี etc/sysconfig:

  1. เพิ่มชื่อแพ็กเกจของแอปในไฟล์ XML ของการกำหนดค่าระบบ ดังนี้
  2. <!-- In a xml file under etc/sysconfig>
    <config>
    
    <allow-adas-location-settings package="PACKAGE-NAME" />
    
    </config>

เพื่อให้แพ็กเกจของคุณปรากฏใน UI การตั้งค่าตำแหน่ง ให้เพิ่มชื่อแพ็กเกจของคุณใน config_locationDriverAssistancePackageNames

เพิ่ม URL การเปิดเผยนโยบายความเป็นส่วนตัวของแอปลงใน AndroidManifest.xml ชื่อ ของข้อมูลเมตาควรเป็น privacy_policy

<meta-data android:name="privacy_policy" android:value= privacy policy URL/>

นำ "ใช้ตำแหน่งสำหรับสวิตช์ตัวช่วยของผู้ขับ" ออก

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

  1. เปิด packages/apps/Car/Settings/res/xml/location_settings_fragment.xml จากนั้นจ่าย แสดงความคิดเห็นเกี่ยวกับโค้ดต่อไปนี้
    <com.android.car.ui.preference.CarUiTwoActionSwitchPreference
    
        android:fragment="com.android.car.settings.location.AdasLocationFragment"
    
        android:key="@string/pk_location_driver_assistance_state_switch"
    
        android:title="@string/location_driver_assistance_toggle_title"
    
        android:summary="@string/location_driver_assistance_toggle_summary"
    
    
    settings:controller="com.android.car.settings.location.AdasLocationSwitchPreferenceController"
    
        settings:searchable="true"/>
    
      <com.android.car.settings.common.DividerPreference/>
  2. หลังจากนำสวิตช์ออกแล้ว ให้ตั้งค่า config_defaultAdasGnssLocationEnabled เป็น false

เรียกใช้ชุดทดสอบยานยนต์

Google มีการทดสอบ Automotive Test Suite (ATS) ที่ช่วยรับประกันว่าตัวช่วยของผู้ขับทั้งหมด แพ็กเกจบนอุปกรณ์ก็ได้รวมอยู่ในรายการที่อนุญาตของ Google แล้ว การทดสอบได้รับการกำหนดค่าจากระยะไกล คุณ ไม่ต้องรอจนกว่าจะมีการเปิดตัว ATS รุ่นถัดไปเพื่อเพิ่มแพ็กเกจใหม่ ดูข้อมูลเพิ่มเติมได้ที่ ทำการสอบรถยนต์ให้เสร็จได้ในกล่อง