27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
ক্যারিয়ার সনাক্তকরণ
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
অ্যান্ড্রয়েড 9 চালিত ডিভাইসগুলি একটি আইডি এবং একটি ক্যারিয়ারের নাম প্রদান করতে সাবস্ক্রিপশন ক্যারিয়ারের তথ্য চিনতে পারে। অ্যান্ড্রয়েড একটি ক্যারিয়ার আইডি ডাটাবেস রক্ষণাবেক্ষণ করে, প্রতিটি ক্যারিয়ার এবং এর অনন্য ক্যারিয়ার আইডির জন্য মিলিত নিয়ম সহ। AOSP carrier_list.textpb
ফাইলে ক্যারিয়ার আইডি ডাটাবেসের বিষয়বস্তু অন্তর্ভুক্ত করে। ইউনিফাইড ডাটাবেস অ্যাপ্লিকেশানগুলিতে ডুপ্লিকেট লজিক কমিয়ে দেয় যা ক্যারিয়ার সনাক্ত করতে হবে এবং ক্যারিয়ার-শনাক্তকারী বৈশিষ্ট্যগুলির এক্সপোজারকে সীমাবদ্ধ করে।
ক্যারিয়ার সনাক্তকরণের কভারেজ এবং নির্ভুলতা উন্নত করতে, অ্যান্ড্রয়েড আউট-অফ-ব্যান্ড এবং ক্যারিয়ার আইডি টেবিল আপডেট সমর্থন করে। প্রতিটি আপডেট একটি সংস্করণ নম্বর সহ আসে এবং AOSP-এ প্রকাশিত হয়।
বাস্তবায়ন
যে ব্যবহারকারীরা ব্যান্ডের বাইরের আপডেট বাস্তবায়ন করতে চান তারা AOSP থেকে carrier_list.pb
বাইনারি ডাউনলোড করতে পারেন। টেবিলের পঠনযোগ্য বিন্যাস দেখতে, carrier_list.textpb
দেখুন।
ডিভাইসের /data/misc/carrierid/
ডেটা পার্টিশনে ক্যারিয়ার আইডি টেবিলটি রাখুন। যদি ক্যারিয়ার আইডি টেবিলটি বিদ্যমান সংস্করণের চেয়ে নতুন হয়, তাহলে ডিভাইসটি ক্যারিয়ার আইডি ডাটাবেস ক্লাসে টেবিলটিকে স্থির রাখে। ক্যারিয়ার আইডি ডাটাবেস থেকে সাম্প্রতিকতম তথ্যগুলো পাবলিক পদ্ধতি getSimCarrierId()
এবং getSimCarrierIdName()
দ্বারা সংগ্রহ করা হয়।
ডাটাবেসে ক্যারিয়ার আইডি যোগ বা আপডেট করতে, ক্যারিয়ার সনাক্তকরণ তথ্য ফর্ম ব্যবহার করে একটি অনুরোধ জমা দিন।
আপনার অনুরোধ পর্যালোচনা করা হয় এবং অনুমোদিত হলে, পরিবর্তনটি carrier_list.pb
এ AOSP কোড বেসে পুশ করা হয়। তারপরে আপনি আপডেট করা তালিকাটি অনুলিপি করতে পারেন এবং এটি আপনার কাস্টমাইজড বিল্ডে অন্তর্ভুক্ত করতে পারেন।
CarrierConfig এর সাথে ক্যারিয়ার আইডি একত্রিত করুন
Android 10 থেকে শুরু করে, ক্যারিয়ার কনফিগারেশন CarrierService
থেকে ক্যারিয়ার-নির্দিষ্ট কনফিগারেশন আনতে কী হিসাবে ক্যারিয়ার আইডি ব্যবহার করা সমর্থন করে।
CarrierConfig
এর সাথে ক্যারিয়ার আইডি একত্রিত করার নিম্নলিখিত সুবিধা রয়েছে:
- প্রতিটি ক্যারিয়ারের জন্য সমস্ত MCC/MNC জোড়া একত্রিত করে একটি একক অবস্থানে সদৃশ বা অসামঞ্জস্যপূর্ণ ডেটা সরিয়ে দেয়।
- প্রতিটি ক্যারিয়ারের জন্য একটি ক্যানোনিকাল শনাক্তকারী তৈরি করে এবং অস্পষ্টতা দূর করে।
- মোবাইল ভার্চুয়াল নেটওয়ার্ক অপারেটর (MVNOs) কে মোবাইল নেটওয়ার্ক অপারেটর (MNO) এর অংশ হিসাবে কনফিগারেশন না করে পৃথক আইডিগুলির সাথে সনাক্ত করার অনুমতি দেয়৷
ক্যারিয়ার আইডিতে কনফিগারেশন ডেটা স্থানান্তর করুন
MCC/MNC জোড়া থেকে ক্যারিয়ার আইডিতে কনফিগারেশন ডেটা স্থানান্তর করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
একটি একক ক্যারিয়ার থেকে carrier_config_mccmnc.xml
ফাইল একসাথে গ্রুপ করুন। একটি নির্দিষ্ট ক্যারিয়ারে MCC, MNC, এবং MVNO তথ্য ম্যাপ করতে একটি রেফারেন্স হিসাবে carrier_list.textpb
ব্যবহার করুন।
কনফিগারেশনগুলিকে একক ফাইলে মার্জ করুন।
(ঐচ্ছিক) MNO থেকে ডেটা ইনহেরিট করুন। MVNOs উত্তরাধিকার carrier_config_mccmnc.xml
ফাইলে MNO থেকে কনফিগারেশনের উত্তরাধিকারী হয়। যেহেতু ক্যারিয়ার আইডিগুলি MVNO সহ সমস্ত ক্যারিয়ারকে একটি ডেডিকেটেড কনফিগারেশন ফাইল রাখার অনুমতি দেয়, তাই মাইগ্রেশনের সময় MNO ডেটা অন্তর্ভুক্ত করার পরামর্শ দেওয়া হয়৷
যদি একটি MVNO ক্যারিয়ার আইডির জন্য কনফিগারেশনটি বিদ্যমান না থাকে, তাহলে getCarrierIdFromSimMccMnc
ব্যবহার করে তার MNO ক্যারিয়ার আইডি থেকে কনফিগারেশনটি আনুন।
নতুন ফাইলটিকে carrier_config_carrierid_ carrierid _ carriername .xml
হিসাবে পুনঃনামকরণ করুন যেখানে carrierid একটি canonical_id
এর সাথে সঙ্গতিপূর্ণ হওয়া আবশ্যক এবং carrier_list.textpb
এর একটি carriername carrier_name
সাথে সঙ্গতিপূর্ণ হওয়া উচিত
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Carrier identification\n\nDevices running Android 9 can recognize subscription\ncarrier information to\nprovide an ID and a carrier name. Android maintains a carrier ID database, with\nmatching rules for each carrier and its unique carrier ID. AOSP includes the\ncontent of the carrier ID database, in the file\n[`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb).\nThe unified database minimizes duplicate logic in apps that need to identify\ncarriers and limits the exposure of carrier-identifying attributes.\n\nTo improve the coverage and accuracy of carrier identification, Android supports\nout-of-band and carrier ID table updates. Each update comes with a version\nnumber and is published to AOSP.\n\nImplementation\n--------------\n\nUsers who want to implement out-of-band updates can download the\n[`carrier_list.pb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.pb)\nbinary from AOSP. To view the readable format of the table, see\n[`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb).\n\nPlace the carrier ID table in the `/data/misc/carrierid/` data partition of the\ndevice. If the carrier ID table is newer than the existing version, the device\npersists the table to the\n[carrier ID database class](https://developer.android.com/reference/android/provider/Telephony.CarrierId).\nThe most recent information from the carrier ID database is picked up by the\npublic methods\n[`getSimCarrierId()`](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierId())\nand\n[`getSimCarrierIdName()`](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierIdName()).\n\nAdd carrier ID information to the database\n------------------------------------------\n\nTo add or update a carrier ID to the database, submit a request using the\n[Carrier identification information form](https://docs.google.com/forms/d/1KjwTaExKRjkE9tbR9yavBrGzwvuz1dNku2Ae_7GrdUQ/viewform?edit_requested=true).\n\nYour request is reviewed and if approved, the change is pushed to the AOSP code\nbase at\n[`carrier_list.pb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.pb).\nYou can then copy the updated list and incorporate it into your customized\nbuild.\n\nIntegrate carrier IDs with CarrierConfig\n----------------------------------------\n\nStarting from Android 10,\n[carrier configuration](/docs/core/connect/carrier) supports\nusing carrier IDs as keys to fetch carrier-specific configurations from\n[`CarrierService`](https://developer.android.com/reference/android/service/carrier/CarrierService).\n\nIntegrating carrier IDs with `CarrierConfig` has the following advantages:\n\n- Consolidates all MCC/MNC pairs for each carrier into a single location removing duplicate or inconsistent data.\n- Creates a canonical identifier for each carrier and removes ambiguity.\n- Allows mobile virtual network operators (MVNOs) to be identified with individual IDs instead of having configurations as part of a mobile network operator (MNO).\n\n### Migrate configuration data to carrier IDs\n\nTo migrate configuration data from MCC/MNC pairs to carrier IDs, follow\nthese steps:\n\n1. Group the `carrier_config_mccmnc.xml` files from a single carrier together.\n Use\n [`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb)\n as a reference to map the MCC, MNC, and MVNO information to a particular\n carrier.\n\n2. Merge the configurations into a single file.\n\n3. (Optional) Inherit data from MNOs. MVNOs inherit configurations from\n MNOs in the legacy `carrier_config_mccmnc.xml` file. Because carrier IDs\n allow all carriers including MVNOs to have a dedicated config file, it's\n recommended to include MNO data during migration.\n\n4. If the configuration for an MVNO carrier ID doesn't exist, fetch the\n configuration from its MNO carrier ID using\n [`getCarrierIdFromSimMccMnc`](https://developer.android.com/reference/android/telephony/TelephonyManager#getCarrierIdFromSimMccMnc()).\n\n5. Rename the new file as\n `carrier_config_carrierid_`\u003cvar translate=\"no\"\u003ecarrierid\u003c/var\u003e`_`\u003cvar translate=\"no\"\u003ecarriername\u003c/var\u003e`.xml`\n where \u003cvar translate=\"no\"\u003ecarrierid\u003c/var\u003e must correspond to a `canonical_id` and\n \u003cvar translate=\"no\"\u003ecarriername\u003c/var\u003e should correspond to a `carrier_name` in\n [`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb)\n\n| **Note:** If a `carrier_config_mccmnc` file doesn't have a matching carrier ID, submit a request to add a carrier ID by following the steps in [Adding carrier ID information to the database](#adding_carrier_id_information_to_the_database)."]]