ฟีเจอร์นี้ช่วยให้เข้าถึงตำแหน่งของแอปช่วยเหลือผู้ขับขี่ที่อนุญาตและมาพร้อม 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)
สำหรับการพัฒนาและการทดสอบ คุณสามารถตรวจสอบหรือเปลี่ยนสถานะของการสลับตัวช่วยคนขับได้อย่างรวดเร็วโดยไม่ต้องใช้การตั้งค่าตำแหน่ง
- หากต้องการใช้คำสั่ง 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 เฉพาะเวอร์ชัน:
- ใน Android 12 แอปช่วยเหลือผู้ขับขี่จะต้องมีสิทธิ์ WRITE_SECURE_SETTINGS
- ใน Android 13 ขึ้นไป จำเป็นต้องมีสิทธิ์
LOCATION_BYPASS
เพิ่มแอปลงในรายการที่อนุญาตบนอุปกรณ์ของคุณ
ในไดเร็กทอรี etc/sysconfig
:
- เพิ่มชื่อแพ็คเกจของแอปในไฟล์ XML การกำหนดค่าระบบ:
<!-- 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 คุณสามารถใส่เครื่องหมายบล็อกโค้ดเพื่อลบสวิตช์สำหรับการตั้งค่าตำแหน่งได้
- เปิด
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/>
- หลังจากถอดสวิตช์ออก ให้ตั้งค่า
config_defaultAdasGnssLocationEnabled
เป็นfalse
เรียกใช้ชุดทดสอบยานยนต์
Google มีชุดการทดสอบยานยนต์ (ATS) ซึ่งช่วยให้มั่นใจว่าแพ็กเกจช่วยเหลือผู้ขับขี่ทั้งหมดในอุปกรณ์ได้รับอนุญาตจาก Google การทดสอบได้รับการกำหนดค่าจากระยะไกล คุณไม่จำเป็นต้องรอจนกว่า ATS รุ่นถัดไปจึงจะเพิ่มแพ็คเกจใหม่ได้ คุณสามารถเรียนรู้เพิ่มเติมได้ที่ Complete Automotive Tests in a Box