Automotive Location Bypass 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_SETTINGS
  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>

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

เพิ่ม 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 ให้บริการทดสอบชุดทดสอบยานยนต์ (ATS) ซึ่งช่วยให้มั่นใจได้ว่าแพ็กเกจความช่วยเหลือด้านผู้ขับขี่ทั้งหมดในอุปกรณ์อยู่ในรายการที่อนุญาตของ Google การทดสอบได้รับการกําหนดค่าจากระยะไกล คุณไม่จำเป็นต้องรอจนถึงรุ่น ATS ถัดไปเพื่อเพิ่มแพ็กเกจใหม่ ดูข้อมูลเพิ่มเติมได้ที่ Complete Automotive Tests in a Box