اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
Automotive Location Bypass API
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تتيح هذه الميزة التحكّم بشكل منفصل في الوصول إلى الموقع الجغرافي لتطبيقات "مساعدة السائق" المُدرَجة في القائمة المسموح بها والمُضمّنة في نظام التشغيل Android، وذلك من خلال مفتاح التبديل "استخدام الموقع الجغرافي لتطبيقات "مساعدة السائق". ويؤدي ذلك إلى السماح لهذه التطبيقات بالوصول إلى الموقع الجغرافي حتى عندما يكون خيار "استخدام الموقع الجغرافي"
متوقفًا.
- لا يقدّم نظام التشغيل Android 12 واجهة برمجة تطبيقات عامة لهذه الميزة. من المفترض أن تطلب تطبيقات مساعدة السائق تعديلات على الموقع الجغرافي كالمعتاد.
- يجب أن يقدّم نظام التشغيل Android 13 والإصدارات الأحدث طلبًا للحصول على الموقع الجغرافي
من أجل استخدام
LocationManager.requestLocationUpdates()
وإدخال LocationRequest
تم ضبطه باستخدام LocationRequest.setAdasGnssBypass(true)
.
استخدام واجهة برمجة التطبيقات لتجاوز الموقع الجغرافي في ميزات "مساعدة السائق"
توضّح الأقسام التالية كيفية استخدام واجهة برمجة التطبيقات لتجاوز الموقع الجغرافي لنظام مساعدة السائق. للاطّلاع على مزيد من المعلومات عن سياسة الاستخدام، يُرجى الاطّلاع على سياسة القائمة المسموح بها لتجاوز القيود الجغرافية.
التحقّق من حالة مفتاح مساعدة السائق
في الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث، يمكنك التحقّق من حالة مفتاح تفعيل ميزات مساعدة السائق
قبل طلب تحديثات الموقع الجغرافي.
// 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
ثم kommentierte الرمز البرمجي التالي.
<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 التالي لإضافة حزمة جديدة. يمكنك الاطّلاع على مزيد من المعلومات على الرابط
Complete Automotive Tests in a Box (اختبارات السيارات الكاملة في علبة).
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-08 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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)"]]