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