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.

הרצת חבילת הבדיקות של Automotive

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