شناسایی حامل

دستگاه‌هایی که اندروید ۹ را اجرا می‌کنند می‌توانند اطلاعات اپراتور اشتراک را برای ارائه شناسه و نام اپراتور شناسایی کنند. اندروید یک پایگاه داده شناسه اپراتور را با قوانین تطبیق برای هر اپراتور و شناسه اپراتور منحصر به فرد آن نگهداری می‌کند. پروژه متن باز اندروید (AOSP) محتوای پایگاه داده شناسه اپراتور را در فایل carrier_list.textp b قرار می‌دهد. پایگاه داده یکپارچه، منطق تکراری را در برنامه‌هایی که نیاز به شناسایی اپراتورها دارند به حداقل می‌رساند و نمایش ویژگی‌های شناسایی اپراتور را محدود می‌کند.

برای بهبود پوشش و دقت شناسایی اپراتور، اندروید از به‌روزرسانی‌های خارج از باند و جدول شناسه اپراتور پشتیبانی می‌کند. هر به‌روزرسانی با یک شماره نسخه ارائه می‌شود و در AOSP منتشر می‌شود.

پیاده‌سازی

اگر می‌خواهید به‌روزرسانی‌های خارج از باند را پیاده‌سازی کنید، می‌توانید فایل باینری carrier_list.pb را از AOSP دانلود کنید. برای مشاهده قالب قابل خواندن جدول، به carrier_list.textpb مراجعه کنید.

جدول شناسه حامل را در پارتیشن /data/misc/carrierid/ data دستگاه قرار دهید. اگر جدول شناسه حامل جدیدتر از نسخه موجود باشد، دستگاه جدول را در کلاس پایگاه داده شناسه حامل ذخیره می‌کند. جدیدترین اطلاعات از پایگاه داده شناسه حامل توسط متدهای عمومی getSimCarrierId() و getSimCarrierIdName() دریافت می‌شود.

اطلاعات شناسه اپراتور را به پایگاه داده اضافه کنید

برای افزودن یا به‌روزرسانی شناسه حامل به پایگاه داده، درخواستی را با استفاده از فرم اطلاعات شناسایی حامل ارسال کنید.

درخواست شما بررسی می‌شود و در صورت تأیید، تغییر به پایگاه کد AOSP در carrier_list.pb منتقل می‌شود. سپس می‌توانید لیست به‌روز شده را کپی کرده و در ساخت سفارشی خود بگنجانید.

ادغام شناسه‌های اپراتور با CarrierConfig

از اندروید ۱۰ به بعد، پیکربندی اپراتور از شناسه‌های اپراتور به عنوان کلید برای دریافت پیکربندی‌های مخصوص اپراتور از CarrierService پشتیبانی می‌کند.

ادغام شناسه‌های حامل با CarrierConfig مزایای زیر را دارد:

  • تمام جفت‌های MCC/MNC را برای هر حامل در یک مکان واحد تجمیع می‌کند و داده‌های تکراری یا متناقض را حذف می‌کند.
  • برای هر حامل یک شناسه متعارف ایجاد می‌کند و ابهام را برطرف می‌کند.
  • به اپراتورهای شبکه مجازی تلفن همراه (MVNO) اجازه می‌دهد تا به جای داشتن پیکربندی‌هایی به عنوان بخشی از یک اپراتور شبکه تلفن همراه (MNO)، با شناسه‌های فردی شناسایی شوند.

انتقال داده‌های پیکربندی به شناسه‌های اپراتور

برای انتقال داده‌های پیکربندی از جفت‌های MCC/MNC به شناسه‌های اپراتور، مراحل زیر را دنبال کنید:

  1. فایل‌های carrier_config_mccmnc.xml را از یک اپراتور واحد با هم گروه‌بندی کنید. از carrier_list.textpb به عنوان مرجع برای نگاشت اطلاعات MCC، MNC و MVNO به یک اپراتور خاص استفاده کنید.

  2. پیکربندی‌ها را در یک فایل واحد ادغام کنید.

  3. (اختیاری) داده‌ها را از MNOها به ارث ببرید. MVNOها پیکربندی‌ها را از MNOها در فایل قدیمی carrier_config_mccmnc.xml به ارث می‌برند. از آنجا که شناسه‌های اپراتور به همه اپراتورها از جمله MVNOها اجازه می‌دهند یک فایل پیکربندی اختصاصی داشته باشند، توصیه می‌شود داده‌های MNO را در طول مهاجرت لحاظ کنید.

  4. اگر پیکربندی مربوط به شناسه اپراتور MVNO وجود ندارد، با استفاده از getCarrierIdFromSimMccMnc پیکربندی را از شناسه اپراتور MNO آن دریافت کنید.

  5. فایل جدید را به carrier_config_carrierid_ carrierid _ carriername .xml تغییر نام دهید، که در آن carrierid باید با canonical_id و carriername باید با carrier_name در carrier_list.textpb مطابقت داشته باشد.