شناسایی حامل

دستگاه‌های دارای Android 9 می‌توانند اطلاعات شرکت مخابراتی را برای ارائه شناسه و نام شرکت مخابراتی تشخیص دهند. 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 به ارث می برند. MVNO ها پیکربندی ها را از 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 مطابقت داشته باشد.