اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
التوافق مع شبكات مشغّلين متعدّدين
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكن للأجهزة التي تعمل بالإصدار 11 من نظام التشغيل Android أو إصدار أحدث أن تقدّم
دعمًا لشبكات PLMN المتعددة. يتضمّن الإصدار
11 من نظام التشغيل Android طرقًا في واجهات برمجة التطبيقات لتحديد الخلايا للحصول على معلومات عن شبكات PLMN المتوافقة مع الخلية من أجل التفريق بين مقدمي خدمات الجوّال ومشغّلي الشبكات.
يمنح توفّر ميزة "شبكات الجوّال المحلية المتعددة" مرونة لمشغّلي شبكات الجوّال من خلال
السماح لهم ببث هويات متعددة. ويُشترط ذلك في المقام الأول لسماح
بتوقيع اتفاقيات المشاركة التي تستخدم فيها عدة
شركات مزوّدة بخدمات الجوّال (MNO) معدات أو أبراجًا مشتركة. في سيناريو توفُّر عدة شبكات PLMN، عندما يختار الجهاز التسجيل باستخدام
برج اتصالات معيّن، يختار شبكة PLMN التي سيتم استخدامها لهذا التسجيل، ما يؤدي إلى قفل
ملف الجهاز الشخصي على شبكة PLMN هذه لجميع عمليات الاتصال اللاحقة. تسترجع الطريقة
getRegisteredPlmn
رقم PLMN المسجَّل للجهاز.
التنفيذ
لتفعيل ميزة "شبكات الجوّال المحلية المتعددة" على الأجهزة التي تعمل بنظام التشغيل Android 11
أو الإصدارات الأحدث، نفِّذ الوظائف في المواقع التالية فيملف برمجة التطبيقات
IRadio
.
IRadio.hal وIRadioResponse.hal
في HAL لإصدار Radio 1.5، لدعم تعدد شبكات PLMN، يتم تسجيل معلومات عن الشبكة التي يتم تسجيل
الجهاز عليها بشكل مختلف عن الإصدارات السابقة. أولاً، يتم تسجيل شبكة PLMN المسجَّلة (RPLMN) بشكل منفصل لأنّه في الخلايا التي تتضمّن عدة شبكات PLMN، قد لا يكون
RPLMN هو رقم تعريف PLMN الأساسي. وفي بنية CellIdentity
،
توفّر الخلية معرّف PLMN أساسيًا وقائمة بمعرّفات PLMN إضافية. يجب أن يكون RPLMN
هو معرّف PLMN الأساسي أو أحد معرّفات PLMN الإضافية المُشار إليها في بنية
CellIdentity
.
تؤثّر التغييرات في HAL لإصدار Radio 1.5 في الطريقتَين التاليتَين من HAL في
IRadio.hal
(وطرق الاستجابة المقابلة لها في
IRadioResponse.hal
).
getDataRegState_1_5
وgetDataRegStateResult_1_5(RegStateResult
result)
getVoiceRegState_1_5
وgetVoiceRegStateResult_1_5(RegStateresult
result)
types.hal
نفِّذ ما يلي
في types.hal
:
ClosedSubscriberGroupInfo
: يتم تضمينها اختياريًا مع كل مثيل
CellIdentity
. تُستخدَم هذه البنية لتقديم تفاصيل عن
مجموعة المشتركين المغلقة التي تنتمي إليها خلية معيّنة، إن توفّرت. ويُستخدَم هذا الإجراء
بشكل شائع لتحديد الخلايا الصغيرة، مثل أجهزة LTE الشخصية. ويمكن
استخدامه أيضًا في عمليات النشر، مثل CBRS LTE.
CellIdentityLte
: يتيح استخدام قائمة بأرقام تعريف PLMN إضافية.
CellIdentityWcdma
: يتيح استخدام قائمة بأرقام تعريف PLMN إضافية.
CellIdentityTdscdma
: يتيح استخدام قائمة بأرقام تعريف PLMN إضافية.
RegStateResult
: يتضمّن بنية CellIdentity
معدَّلة وحقلًا
للإشارة إلى RPLMN.
التحقُّق
لاختبار عملية التنفيذ، يمكنك إجراء اختبار CTS التالي:
CellInfoTest
أثناء التسجيل في شبكة وصول لاسلكي متعددة المشغّلين (MORAN) أو
شبكة أساسية متعددة المشغّلين (MOCN).
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Multi-operator network support\n\nDevices launching with Android 11 or higher can provide\nsupport for multiple public land mobile networks (PLMNs). Android\n11 includes methods in the\n[cell identification APIs](https://developer.android.com/reference/android/telephony/CellIdentity)\nto get information about a cell's supported PLMNs to distinguish between\ncellular service providers and network operators.\n\nMulti-PLMN support provides flexibility to mobile network operators (MNOs) by\nallowing them to broadcast multiple identities. This is primarily required to\nsupport sharing agreements where common hardware or towers are used by multiple\nMNOs. In a multi-PLMN scenario, when a device chooses to register using a\nparticular tower, it selects the PLMN to use for that registration, which locks\nthe device's *profile* to that PLMN for all ensuing communication. The\n[`getRegisteredPlmn`](https://developer.android.com/reference/android/telephony/NetworkRegistrationInfo#getRegisteredPlmn())\nmethod retrieves the registered PLMN for the device.\n\nImplementation\n--------------\n\nTo support multi-PLMN on devices running Android 11\nor higher, implement the functions in the following locations in\n[`IRadio`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.5/).\n\n### IRadio.hal and IRadioResponse.hal\n\nIn the Radio 1.5 HAL, to support multi-PLMN, information about the network the\ndevice registers on is reported differently than previous versions. First, the\nregistered PLMN (RPLMN) is reported separately because on multi-PLMN cells, the\nRPLMN might not be the primary PLMN-ID. And in the `CellIdentity` structures,\nthe cell provides a primary PLMN-ID and a list of additional PLMN-IDs. The RPLMN\nmust be the primary PLMN-ID or one of the additional PLMN-IDs indicated in the\n`CellIdentity` structure.\n\nThe changes in the Radio 1.5 HAL impact the following two HAL methods in\n[`IRadio.hal`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.5/IRadio.hal)\n(and their corresponding response methods in\n[`IRadioResponse.hal`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.5/IRadioResponse.hal)).\n\n- `getDataRegState_1_5` and `getDataRegStateResult_1_5(RegStateResult\n result)`\n- `getVoiceRegState_1_5` and `getVoiceRegStateResult_1_5(RegStateresult\n result)`\n\n### types.hal\n\nImplement the following\nin [`types.hal`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.5/types.hal):\n\n- `ClosedSubscriberGroupInfo`: Included optionally with every `CellIdentity` instance. This structure is used to provide details about the closed subscriber group to which a cell belongs, if any. This is commonly used to identity *small cells* such as personal LTE devices. It can also be used in deployments such as CBRS LTE.\n- `CellIdentityLte`: Supports a list of additional PLMN-IDs.\n- `CellIdentityWcdma`: Supports a list of additional PLMN-IDs.\n- `CellIdentityTdscdma`: Supports a list of additional PLMN-IDs.\n- `RegStateResult`: Includes an updated `CellIdentity` structure and a field to indicate the RPLMN.\n\nValidation\n----------\n\nTo test your implementation, run the following CTS test:\n[`CellInfoTest`](https://android.googlesource.com/platform/cts/+/3c3d33a/tests/tests/telephony/src/android/telephony/cts/CellInfoTest.java)\nwhile registered to a multi-operator radio access network (MORAN) or\nmulti-operator core network (MOCN)."]]