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.

מוסיפים את כתובת ה-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.

הרצת חבילה לבדיקת רכבים (ATS)

Google מספקת בדיקה של חבילת בדיקות לרכב (ATS), שמטרתה לוודא שכל חבילות העזרה לנהגים במכשיר נכללות ברשימת ההיתרים של Google. הבדיקה מוגדרת מרחוק. אין צורך להמתין עד לפרסום הגרסה הבאה של ATS כדי להוסיף חבילה חדשה. מידע נוסף זמין במאמר Complete Automotive Tests in a Box.