اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
معرّف مشغّل شبكة الجوّال
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكن للأجهزة التي تعمل بنظام التشغيل Android 9 التعرّف على معلومات مقدم الخدمة
للاشتراك بهدف
توفير معرّف واسم مقدّم الخدمة. يحتفظ نظام التشغيل Android بقاعدة بيانات لمعرّفات مشغّلي الشبكات، مع
قواعد مطابقة لكل مشغّل شبكة ومعرّفه الفريد. يتضمّن AOSP
محتوى قاعدة بيانات معرّفات مشغّلي الشبكات، في الملف
carrier_list.textpb
.
تعمل قاعدة البيانات الموحّدة على تقليل المنطق المتكرّر في التطبيقات التي تحتاج إلى تحديد
مشغّلي الشبكات، كما تحدّ من عرض السمات التي تحدّد مشغّلي الشبكات.
لتحسين تغطية ودقة تحديد مشغّل شبكة الجوّال، يتيح Android تعديل جدول تعريف مشغّل شبكة الجوّال خارج النطاق. يتضمّن كل تحديث رقم إصدار ويتم نشره على AOSP.
التنفيذ
يمكن للمستخدمين الذين يريدون تنفيذ تحديثات خارج النطاق تنزيل ملف برمجي ثنائي
carrier_list.pb
من AOSP. للاطّلاع على تنسيق الجدول القابل للقراءة، يُرجى الاطّلاع على
carrier_list.textpb
.
ضَع جدول رقم تعريف مشغّل شبكة الجوَّال في قسم البيانات /data/misc/carrierid/
للجهاز. إذا كان جدول رقم تعريف مشغّل شبكة الجوَّال أحدث من الإصدار الحالي، يحفظ الجهاز
الجدول في
فئة قاعدة بيانات رقم تعريف مشغّل شبكة الجوَّال.
يتم الحصول على أحدث المعلومات من قاعدة بيانات معرّفات مشغّلي شبكات الجوَّال باستخدام ال methods
العلنية
getSimCarrierId()
و
getSimCarrierIdName()
.
لإضافة معرّف مشغّل شبكة الجوَّال أو تعديله في قاعدة البيانات، أرسِل طلبًا باستخدام
نموذج معلومات معرّف مشغّل شبكة الجوَّال.
تتم مراجعة طلبك، وفي حال الموافقة عليه، يتم إرسال التغيير إلى قاعدة رمز AOSP
باستخدام الرابط
carrier_list.pb
.
يمكنك بعد ذلك نسخ القائمة المعدّلة ودمجها في الإصدار المخصّص.
دمج أرقام تعريف مشغّلي شبكات الجوال مع CarrierConfig
بدءًا من Android 10، تتيح
إعدادات مشغّل شبكة الجوَّال استخدام
أرقام تعريف مشغّل شبكة الجوَّال كمفاتيح لجلب الإعدادات الخاصة بمشغّل شبكة الجوَّال من
CarrierService
.
تتوفر المزايا التالية عند دمج أرقام تعريف مشغّلي شبكات الجوّال مع CarrierConfig
:
- توحيد جميع أزواج MCC/MNC لكل مشغّل شبكة جوّال في مكان واحد
مع إزالة البيانات المكرّرة أو غير المتسقة
- إنشاء معرّف أساسي لكل مشغّل شبكة جوّال وإزالة الغموض
- السماح بتحديد مشغّلي شبكات الجوّال الافتراضية (MVNO) باستخدام معرّفات فردیة بدلاً من ضبط الإعدادات كجزء من مشغّل شبكة جوّال (MNO)
نقل بيانات الضبط إلى أرقام تعريف مشغّلي شبكة الجوَّال
لنقل بيانات الضبط من أزواج MCC/MNC إلى أرقام تعريف مشغّلي الشبكات، اتّبِع
الخطوات التالية:
تجميع carrier_config_mccmnc.xml
ملف من مشغّل شبكة جوّال واحد معًا
استخدِم
carrier_list.textpb
كمرجع لربط معلومات MCC وMNC وMVNO بمشغّل شبكة متنقل معيّن.
دمج الإعدادات في ملف واحد
(اختياري) اكتساب البيانات من مشغلي شبكات الجوّال تكتسِب مزوّدي خدمات الجوّال المتعدّدة (MVNO) الإعدادات من مزوّدي خدمات الجوّال (MNO) في ملف carrier_config_mccmnc.xml
القديم. بما أنّ أرقام تعريف مشغّلي شبكة الجوّال تسمح لجميع مشغّلي شبكة الجوّال، بما في ذلك مشغّلو شبكة الجوّال الافتراضية، بالحصول على ملفّ إعدادات مخصّص، ننصح بدمج بيانات مشغّلي شبكة الجوّال أثناء نقل البيانات.
إذا لم يكن هناك إعدادات لرقم تعريف مشغّل شبكة الجوّال التابع لمزوّد خدمة الجوّال الافتراضية (MVNO)، يمكنك جلب
الإعدادات من رقم تعريف مشغّل شبكة الجوّال التابع لمزوّد الخدمة الجوّال (MNO) باستخدام
getCarrierIdFromSimMccMnc
.
أعِد تسمية الملف الجديد باسم
carrier_config_carrierid_carrierid_carriername.xml
حيث يجب أن يتوافق carrierid مع canonical_id
ويجب أن يتوافق
carriername مع carrier_name
في
carrier_list.textpb
.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-26 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Carrier identification\n\nDevices running Android 9 can recognize subscription\ncarrier information to\nprovide an ID and a carrier name. Android maintains a carrier ID database, with\nmatching rules for each carrier and its unique carrier ID. AOSP includes the\ncontent of the carrier ID database, in the file\n[`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb).\nThe unified database minimizes duplicate logic in apps that need to identify\ncarriers and limits the exposure of carrier-identifying attributes.\n\nTo improve the coverage and accuracy of carrier identification, Android supports\nout-of-band and carrier ID table updates. Each update comes with a version\nnumber and is published to AOSP.\n\nImplementation\n--------------\n\nUsers who want to implement out-of-band updates can download the\n[`carrier_list.pb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.pb)\nbinary from AOSP. To view the readable format of the table, see\n[`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb).\n\nPlace the carrier ID table in the `/data/misc/carrierid/` data partition of the\ndevice. If the carrier ID table is newer than the existing version, the device\npersists the table to the\n[carrier ID database class](https://developer.android.com/reference/android/provider/Telephony.CarrierId).\nThe most recent information from the carrier ID database is picked up by the\npublic methods\n[`getSimCarrierId()`](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierId())\nand\n[`getSimCarrierIdName()`](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierIdName()).\n\nAdd carrier ID information to the database\n------------------------------------------\n\nTo add or update a carrier ID to the database, submit a request using the\n[Carrier identification information form](https://docs.google.com/forms/d/1KjwTaExKRjkE9tbR9yavBrGzwvuz1dNku2Ae_7GrdUQ/viewform?edit_requested=true).\n\nYour request is reviewed and if approved, the change is pushed to the AOSP code\nbase at\n[`carrier_list.pb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.pb).\nYou can then copy the updated list and incorporate it into your customized\nbuild.\n\nIntegrate carrier IDs with CarrierConfig\n----------------------------------------\n\nStarting from Android 10,\n[carrier configuration](/docs/core/connect/carrier) supports\nusing carrier IDs as keys to fetch carrier-specific configurations from\n[`CarrierService`](https://developer.android.com/reference/android/service/carrier/CarrierService).\n\nIntegrating carrier IDs with `CarrierConfig` has the following advantages:\n\n- Consolidates all MCC/MNC pairs for each carrier into a single location removing duplicate or inconsistent data.\n- Creates a canonical identifier for each carrier and removes ambiguity.\n- Allows mobile virtual network operators (MVNOs) to be identified with individual IDs instead of having configurations as part of a mobile network operator (MNO).\n\n### Migrate configuration data to carrier IDs\n\nTo migrate configuration data from MCC/MNC pairs to carrier IDs, follow\nthese steps:\n\n1. Group the `carrier_config_mccmnc.xml` files from a single carrier together.\n Use\n [`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb)\n as a reference to map the MCC, MNC, and MVNO information to a particular\n carrier.\n\n2. Merge the configurations into a single file.\n\n3. (Optional) Inherit data from MNOs. MVNOs inherit configurations from\n MNOs in the legacy `carrier_config_mccmnc.xml` file. Because carrier IDs\n allow all carriers including MVNOs to have a dedicated config file, it's\n recommended to include MNO data during migration.\n\n4. If the configuration for an MVNO carrier ID doesn't exist, fetch the\n configuration from its MNO carrier ID using\n [`getCarrierIdFromSimMccMnc`](https://developer.android.com/reference/android/telephony/TelephonyManager#getCarrierIdFromSimMccMnc()).\n\n5. Rename the new file as\n `carrier_config_carrierid_`\u003cvar translate=\"no\"\u003ecarrierid\u003c/var\u003e`_`\u003cvar translate=\"no\"\u003ecarriername\u003c/var\u003e`.xml`\n where \u003cvar translate=\"no\"\u003ecarrierid\u003c/var\u003e must correspond to a `canonical_id` and\n \u003cvar translate=\"no\"\u003ecarriername\u003c/var\u003e should correspond to a `carrier_name` in\n [`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb)\n\n| **Note:** If a `carrier_config_mccmnc` file doesn't have a matching carrier ID, submit a request to add a carrier ID by following the steps in [Adding carrier ID information to the database](#adding_carrier_id_information_to_the_database)."]]