ฟีเจอร์นี้ช่วยให้สวิตช์ "ใช้ตำแหน่งสำหรับตัวช่วยของผู้ขับ" ควบคุมสิทธิ์เข้าถึงตำแหน่งของแอปตัวช่วยของผู้ขับที่อยู่ในรายการที่อนุญาตและรวมอยู่ใน 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 ครั้งถัดไปเพื่อเพิ่มแพ็กเกจใหม่ ดูข้อมูลเพิ่มเติมได้ที่การทดสอบยานยนต์แบบครบวงจรในกล่องเดียว