شناسایی شرکت مخابراتی

دستگاه‌های دارای Android 9 می‌توانند اطلاعات شرکت مخابراتی اشتراک را تشخیص دهند تا شناسه و نام شرکت مخابراتی را ارائه دهند. ‫Android پایگاه داده‌ای از شناسه‌های شرکت مخابراتی دارد که قوانین تطبیق برای هر شرکت مخابراتی و شناسه شرکت مخابراتی یکتای آن را دربرمی‌گیرد. «پروژه منبع باز Android»‏ (AOSP) شامل محتوای پایگاه داده شناسه شرکت مخابراتی در فایل carrier_list.textpb است. پایگاه داده یکپارچه منطق تکراری را در برنامه‌هایی که نیاز به شناسایی شرکت‌های مخابراتی دارند به حداقل می‌رساند و نمایش ویژگی‌های شناسایی شرکت مخابراتی را محدود می‌کند.

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

پیاده‌سازی

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

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

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

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

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

ادغام شناسه‌های شرکت مخابراتی با CarrierConfig

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

ادغام شناسه‌های شرکت مخابراتی با CarrierConfig مزایای زیر را دارد:

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

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

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

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

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

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

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

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