دستگاههای دارای 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 به شناسههای حامل، این مراحل را دنبال کنید:
فایلهای
carrier_config_mccmnc.xml
را از یک حامل واحد با هم گروهبندی کنید. ازcarrier_list.textpb
به عنوان مرجع برای نگاشت اطلاعات MCC، MNC و MVNO به یک حامل خاص استفاده کنید.تنظیمات را در یک فایل ادغام کنید.
(اختیاری) داده ها را از MNO به ارث می برند. MVNO ها پیکربندی ها را از MNO ها در فایل
carrier_config_mccmnc.xml
قدیمی به ارث می برند. از آنجایی که شناسههای حامل به همه اپراتورها از جمله MVNO اجازه میدهند یک فایل پیکربندی اختصاصی داشته باشند، توصیه میشود که دادههای MNO را در حین انتقال اضافه کنید.اگر پیکربندی شناسه حامل MVNO وجود ندارد، پیکربندی را از شناسه حامل MNO آن با استفاده از
getCarrierIdFromSimMccMnc
واکشی کنید.تغییر نام فایل جدید به عنوان
carrier_config_carrierid_ carrierid _ carriername .xml
که در آن carrierid باید باcanonical_id
و carriername باید باcarrier_name
درcarrier_list.textpb
مطابقت داشته باشد.