החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
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)
בפיתוח ובבדיקה, אפשר לבדוק או לשנות במהירות את המצב של המתג של מערכת העזרה לנהג בלי להשתמש בהגדרות המיקום.
- כדי להשתמש בפקודות 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>
כדי לוודא שהחבילה תופיע בממשק המשתמש של הגדרות המיקום, צריך להוסיף את שם החבילה לקובץ 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
.
הרצת חבילה לבדיקת רכבים (ATS)
Google מספקת בדיקה של חבילת בדיקות לרכב (ATS), שמטרתה לוודא שכל חבילות העזרה לנהגים במכשיר נכללות ברשימת ההיתרים של Google. הבדיקה מוגדרת מרחוק. אין צורך להמתין עד לפרסום הגרסה הבאה של ATS כדי להוסיף חבילה חדשה. מידע נוסף זמין במאמר Complete Automotive Tests in a Box.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-08-08 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-08-08 (שעון UTC)."],[],[],null,["# Automotive Location Bypass API\n\nThis feature allows location access of allowlisted, Android-bundled, driver\nassistance apps to be controlled separately by the \"Use location for driver\nassistance\" switch. This enables these apps to access location even when the \"Use location\"\nswitch is off.\n\n- Android 12 doesn't provide a public API for this feature. Driver assistance apps should request location updates as usual.\n- Android 13 and higher must make a location request to use `LocationManager.requestLocationUpdates()` and pass in a `LocationRequest` object configured with `LocationRequest.setAdasGnssBypass(true)`.\n\nUse the driver assistance location bypass API\n---------------------------------------------\n\nThe following sections describe how to use the driver assistance location bypass API. To learn\nmore about the usage policy, see\n[Location Bypass Allowlist Policy](/docs/automotive/location_bypass/location_bypass_policy).\n\n### Check the driver assistance switch status\n\nIn Android 13 and higher, you can check driver assistance switch status\nbefore requesting location updates.\n\n```scilab\n// Returns the current status of \"Use location for driver assistance\".\nlocationManager.isAdasGnssLocationEnabled();\n```\n\n### Run Android Debug Bridge (ADB) commands\n\nFor development and testing, you can quickly check or change the status of the driver assistance\ntoggle without using Location Settings.\n\n1. To use ADB commands to check or change status: \n\n ```scilab\n // Gets the status of ADAS location.\n adb shell cmd location is-adas-gnss-location-enabled\n\n // Enables ADAS location.\n adb shell cmd location set-adas-gnss-location-enabled true\n\n // Disables ADAS location.\n adb shell cmd location set-adas-gnss-location-enabled false\n ```\n\n### Set permission\n\nSee the following for version-specific Android releases:\n\n1. In Android 12, driver assistance apps must have the [WRITE_SECURE_SETTINGS](https://developer.android.com/reference/android/Manifest.permission#WRITE_SECURE_SETTINGS) permission.\n2. In Android 13 and higher, the `LOCATION_BYPASS` permission is required.\n\n### Add an app to the allowlist on your device\n\nIn the `etc/sysconfig` directory:\n\n1. Add the app's package name in a system configuration XML file: \n\n```carbon\n\u003c!-- In a xml file under etc/sysconfig--\u003e\n\u003cconfig\u003e\n...\n\u003callow-adas-location-settings package=\"PACKAGE-NAME\" /\u003e\n...\n\u003c/config\u003e\n```\n\nTo ensure your package appears in the Location Settings UI, add your package name to\n`config_locationDriverAssistancePackageNames`.\n\nAdd the app's URL of privacy policy disclosure to `AndroidManifest.xml`. The name\nof the meta-data should be `privacy_policy`. \n\n```scdoc\n\u003cmeta-data android:name=\"privacy_policy\" android:value= privacy policy URL/\u003e\n```\n\n### Remove the \"Use location for driver assistance switch\"\n\nIf you don't have a location-powered driver assistance app that requests location from Android,\nyou can comment out the code block to remove the switch for Location Settings.\n\n1. Open `packages/apps/Car/Settings/res/xml/location_settings_fragment.xml` and then comment out the following code. \n\n ```transact-sql\n \u003ccom.android.car.ui.preference.CarUiTwoActionSwitchPreference\n\n android:fragment=\"com.android.car.settings.location.AdasLocationFragment\"\n\n android:key=\"@string/pk_location_driver_assistance_state_switch\"\n\n android:title=\"@string/location_driver_assistance_toggle_title\"\n\n android:summary=\"@string/location_driver_assistance_toggle_summary\"\n\n\n settings:controller=\"com.android.car.settings.location.AdasLocationSwitchPreferenceController\"\n\n settings:searchable=\"true\"/\u003e\n\n \u003ccom.android.car.settings.common.DividerPreference/\u003e\n ```\n2. After removing the switch, set `config_defaultAdasGnssLocationEnabled` to `false`.\n\nRun the Automotive test suite\n-----------------------------\n\nGoogle provides an Automotive test suite (ATS) test, which ensures that all driver assistance\npackages on a device have been allowlisted with Google. The test is remotely configured. You\nneedn't wait until the next ATS release to add a new package. You can learn more at\n[Complete Automotive Tests in a Box.](/docs/automotive/tools/catbox)\n[](/docs/automotive/tools/catbox)"]]