API Bỏ qua vị trí trong ô tô

Tính năng này cho phép kiểm soát riêng quyền truy cập thông tin vị trí của các ứng dụng hỗ trợ người lái xe được đưa vào danh sách cho phép, đi kèm với Android bằng nút chuyển "Sử dụng thông tin vị trí cho tính năng hỗ trợ người lái xe". Điều này cho phép các ứng dụng này truy cập thông tin vị trí ngay cả khi nút chuyển "Sử dụng vị trí" tắt.

  • Android 12 không cung cấp API công khai cho tính năng này. Ứng dụng hỗ trợ người lái phải yêu cầu thông tin cập nhật về vị trí như bình thường.
  • Android 13 trở lên phải tạo một yêu cầu vị trí để sử dụng LocationManager.requestLocationUpdates() và truyền vào một đối tượng LocationRequest được định cấu hình bằng LocationRequest.setAdasGnssBypass(true).

Sử dụng API bỏ qua vị trí hỗ trợ người lái xe

Các phần sau đây mô tả cách sử dụng API bỏ qua vị trí hỗ trợ người lái. Để tìm hiểu thêm về chính sách sử dụng, hãy xem Chính sách về danh sách cho phép bỏ qua thông tin vị trí.

Kiểm tra trạng thái của nút chuyển hỗ trợ người lái

Trên Android 13 trở lên, bạn có thể kiểm tra trạng thái của nút chuyển hỗ trợ người lái trước khi yêu cầu cập nhật vị trí.

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

Chạy lệnh Cầu gỡ lỗi Android (ADB)

Để phát triển và thử nghiệm, bạn có thể nhanh chóng kiểm tra hoặc thay đổi trạng thái của nút bật/tắt tính năng hỗ trợ người lái mà không cần sử dụng phần Cài đặt vị trí.

  1. Cách sử dụng các lệnh ADB để kiểm tra hoặc thay đổi trạng thái:
    // 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

Thiết lập quyền

Hãy xem phần sau đây để biết các bản phát hành Android theo phiên bản:

  1. Trong Android 12, các ứng dụng hỗ trợ người lái xe phải có quyền WRITE_SECURE_SETTINGS.
  2. Trên Android 13 trở lên, bạn bắt buộc phải có quyền LOCATION_BYPASS.

Thêm một ứng dụng vào danh sách cho phép trên thiết bị

Trong thư mục etc/sysconfig:

  1. Thêm tên gói của ứng dụng vào tệp XML cấu hình hệ thống:
  2. <!-- In a xml file under etc/sysconfig>
    <config>
    
    <allow-adas-location-settings package="PACKAGE-NAME" />
    
    </config>

Để đảm bảo gói của bạn xuất hiện trong giao diện người dùng Cài đặt vị trí, hãy thêm tên gói vào config_locationDriverAssistancePackageNames.

Thêm URL của nội dung công bố chính sách quyền riêng tư của ứng dụng vào AndroidManifest.xml. Tên siêu dữ liệu phải là privacy_policy.

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

Xoá nút "Sử dụng vị trí để hỗ trợ người lái xe"

Nếu không có ứng dụng hỗ trợ người lái xe dựa trên vị trí yêu cầu vị trí từ Android, bạn có thể chú thích khối mã để xoá nút chuyển cho phần Cài đặt vị trí.

  1. Mở packages/apps/Car/Settings/res/xml/location_settings_fragment.xml rồi chú thích mã sau.
    <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. Sau khi xoá nút chuyển, hãy đặt config_defaultAdasGnssLocationEnabled thành false.

Chạy bộ kiểm thử Automotive

Google cung cấp một bộ kiểm thử Ô tô (ATS) để đảm bảo rằng tất cả các gói hỗ trợ người lái xe trên một thiết bị đều đã được Google đưa vào danh sách cho phép. Thử nghiệm được định cấu hình từ xa. Bạn không cần phải đợi đến bản phát hành ATS tiếp theo để thêm gói mới. Bạn có thể tìm hiểu thêm tại Complete Automotive Tests in a Box (Kiểm thử hoàn chỉnh cho ngành ô tô trong một hộp).