একাধিক সক্রিয় প্রোফাইল

Android 13 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য, Android eUICC-এর জন্য একাধিক সক্রিয় প্রোফাইল (MEPs) সমর্থন করে। এই বৈশিষ্ট্যটি ডিভাইসগুলিকে একটি একক eSIM চিপ ব্যবহার করে ডুয়াল সিম সমর্থন করার অনুমতি দেয়, যার একাধিক সিম প্রোফাইল থাকতে পারে এবং একই সময়ে দুটি ভিন্ন ক্যারিয়ারের সাথে সংযোগ করতে পারে। ডিভাইস নির্মাতাদের অবশ্যই তাদের ডিভাইসে এই বৈশিষ্ট্যটি সংহত করতে SoC বিক্রেতা এবং eSIM চিপসেট বিক্রেতাদের সাথে কাজ করতে হবে।

পটভূমি

অ্যান্ড্রয়েড 12 এবং তার চেয়ে কম সংস্করণে চলমান ডিভাইসগুলিতে, AOSP একটি একক eSIM একই সময়ে একাধিক প্রোফাইল সমর্থন করার জন্য সীমিত সমর্থন প্রদান করে। eSIM অফার করে উল্লেখযোগ্য স্থান এবং খরচ সাশ্রয় সত্ত্বেও, ডুয়াল সিম সমর্থনের এই অভাব ডিভাইস নির্মাতাদের শুধুমাত্র eSIM ডিভাইসগুলি গ্রহণ করতে বাধা দেয়। শুধুমাত্র eSIM-এর ডিভাইসে ডুয়াল সিম সমর্থন প্রদান করতে, ডিভাইস নির্মাতাদের ডিভাইসে দুটি eSIM উপাদান প্যাক করতে হবে, যা উপাদানের বিল (BOM) খরচ বাড়ায় এবং সাবস্ক্রিপশন পরিচালনার জন্য খারাপ ব্যবহারকারীর অভিজ্ঞতার দিকে পরিচালিত করে। অ্যান্ড্রয়েড 13 থেকে AOSP-এ উপলব্ধ MEP বৈশিষ্ট্যটি এই সমস্যার সমাধান করে।

eUICC আর্কিটেকচার পরিবর্তন

এই বিভাগটি Android 13 চালিত MEP সহ ডিভাইসগুলির জন্য এবং MEP Android 12 এবং তার চেয়ে কম সংস্করণ ছাড়া চলমান ডিভাইসগুলির জন্য eSIM চিপ আর্কিটেকচারের একটি তুলনা প্রদান করে৷ চিত্র 1-এ দেখানো MEP সমর্থনকারী ডিভাইসগুলির জন্য, eSIM স্লটে একাধিক eUICC পোর্ট রয়েছে, যেখানে প্রতিটি পোর্টে একটি সক্রিয় প্রোফাইল থাকতে পারে। এই আর্কিটেকচারের সাথে, একটি একক eUICC (একটি একক ফিজিক্যাল স্লট) একটি মডেম বেসব্যান্ডের সাথে প্রতিটি eUICC পোর্ট লিঙ্ক থাকার মাধ্যমে ডুয়াল সিম ডুয়াল স্ট্যান্ডবাই (DSDS) সমর্থন করে। চিত্র 2 MEP ছাড়া ডিভাইসের জন্য eSIM চিপ আর্কিটেকচার বর্ণনা করে।

MEP সমর্থন সহ eSIM চিপ আর্কিটেকচার

চিত্র 1. এমইপি সমর্থন সহ eSIM চিপ আর্কিটেকচার (Android 13 বা উচ্চতর)

MEP সমর্থন ছাড়া eSIM চিপ আর্কিটেকচার

চিত্র 2. এমইপি সমর্থন ছাড়াই eSIM চিপ আর্কিটেকচার (Android 12 বা নিম্নতর)

একাধিক সক্রিয় প্রোফাইলের জন্য API তথ্য প্রবাহ

চিত্র 3 এন্ড্রয়েড 13-এ eUICC-এর জন্য MEP-এর জন্য তথ্য প্রবাহ বর্ণনা করে। টেলিফোনি ফ্রেমওয়ার্ক UiccPort ক্লাস অন্তর্ভুক্ত করে, যা eUICC-তে শারীরিক কাঠামোর প্রতিনিধিত্ব করে। UiccPort ক্লাসটি সব ধরনের সিম কার্ডের জন্য ব্যবহৃত হয়: ফিজিক্যাল সিম (pSIM), ইন্টিগ্রেটেড সিম (iSIM), এবং এমবেডেড সিম (eSIM)। একাধিক পোর্ট সহ একটি eUICC এর জন্য, একটি একক UiccSlot অবজেক্ট এবং একাধিক UiccPort দৃষ্টান্তে UiccCard অবজেক্ট ম্যাপ। প্রতিটি UiccPort উদাহরণ সর্বাধিক একটি UiccProfile উদাহরণের সাথে লিঙ্ক করতে পারে। এই প্রবাহটি UiccPort একটি লজিক্যাল স্লটে ম্যাপ করতে এবং UiccSlot (ভৌতিক স্লট) কে একাধিক লজিক্যাল স্লটে ম্যাপ করতে দেয়।

MEP তথ্য প্রবাহ

চিত্র 3. MEP সমর্থন সহ eUICC-এর জন্য তথ্য প্রবাহ

বাস্তবায়ন

এই বিভাগে HAL প্রয়োজনীয়তা, API, এবং ব্যবহারকারী ইন্টারফেস সম্পর্কে বিশদ সহ MEP বৈশিষ্ট্য কীভাবে বাস্তবায়ন করা যায় তা বর্ণনা করে। MEP সমর্থন করার জন্য ডিভাইস নির্মাতাদের SoC বিক্রেতা এবং eSIM চিপসেট বিক্রেতাদের সাথে কাজ করা উচিত।

HAL প্রয়োজনীয়তা

eUICC-এর জন্য MEP সমর্থন করতে, নিম্নলিখিত IRadio 2.0 AIDL HAL APIগুলি প্রয়োগ করুন৷

কার্ড স্ট্যাটাস

getIccCardStatusResponse পদ্ধতির প্রতিক্রিয়া হিসাবে মোডেমকে অবশ্যই CardStatus API সমর্থন করতে হবে। প্রতিক্রিয়াতে পোর্ট ইনডেক্স এবং SimPortSlotMapping দ্বারা নির্দিষ্ট করা ফিজিক্যাল স্লট সূচক অন্তর্ভুক্ত থাকতে হবে।

সিমস্লট স্ট্যাটাস

getSimSlotsStatus পদ্ধতির প্রতিক্রিয়া হিসাবে মোডেমটিকে অবশ্যই SimSlotStatus API সমর্থন করতে হবে। সিম স্লট স্ট্যাটাসে SimPortInfo ইন্টারফেসের একটি অ্যারে অন্তর্ভুক্ত থাকে, যার মধ্যে পোর্ট ইনডেক্স, সক্রিয় প্রোফাইলের জন্য ICCID এবং পোর্ট স্টেট অন্তর্ভুক্ত থাকে। মডেমকে অবশ্যই কমপক্ষে দুটি SimPortInfo বস্তু ফেরত দিতে হবে।

সেট সিমস্লটম্যাপিং

setSimSlotMapping পদ্ধতিটিকে অবশ্যই SimPortSlotMapping এর একটি অ্যারে পাস করতে হবে। অ্যারের সূচী হল লজিক্যাল স্লট এবং SimPortSlotMapping সংশ্লিষ্ট ম্যাপ করা পোর্ট এবং ফিজিক্যাল স্লট সূচক নির্দিষ্ট করে। setSimSlotMapping পদ্ধতি পোর্ট থেকে লজিক্যাল স্লটে ম্যাপিং সেট করে। LPA অ্যাপ সক্রিয় পোর্ট নির্বাচন করতে এই পদ্ধতি ব্যবহার করে।

EUICC-এর জন্য MEP সমর্থনকারী API

AOSP টেলিফোনি স্ট্যাকের অংশ হিসাবে একাধিক সক্রিয় প্রোফাইল সমর্থন করে এমন Android ডিভাইসগুলিকে নিম্নলিখিত APIগুলিকে সমর্থন করতে হবে৷

UiccCardInfo

  • (Android 13 এবং উচ্চতর) isMultipleEnabledProfilesSupported : এই UICC MEP সমর্থন করে কিনা তা ফেরত দেয়।
  • (Android 13 এবং উচ্চতর) getPorts : একটি নির্দিষ্ট UICC-এর জন্য সম্ভাব্য সমস্ত পোর্টের তালিকা প্রদান করে। যদি UICC একটি pSIM বা eSIM হয় যা MEP সমর্থন করে না, তাহলে একটি উপাদানের একটি তালিকা প্রদান করে।
  • (অপ্রচলিত) getIccId : একটি ICCID প্রদান করে। যেহেতু একটি UICC-এর MEP সহ ডিভাইসগুলির জন্য একাধিক ICCID থাকতে পারে, তার পরিবর্তে UiccPortInfo.getIccId() ব্যবহার করুন৷

(Android 13 এবং উচ্চতর) UiccPortInfo

  • getIccId : এই পোর্টে একটি সক্রিয় সদস্যতা থাকলে ICCID ফেরত দেয়।
  • getPortIndex : পোর্ট ইনডেক্স প্রদান করে।
  • getLogicalSlotIndex : সক্রিয় লজিক্যাল মডেম স্ট্যাক ইনডেক্স প্রদান করে।

সদস্যতা তথ্য

  • (Android 13 এবং উচ্চতর) getPortIndex : সাবস্ক্রিপশন সক্রিয় করা আছে এমন পোর্ট সূচী প্রদান করে। সদস্যতা অক্ষম করা হলে, INVALID_PORT_ID -1 প্রদান করে।

ইউআইসিসি ম্যানেজার

  • switchToSubscription : একটি প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করে। অ্যাক্টিভ সাবস্ক্রিপশনে ক্যারিয়ারের বিশেষাধিকার নেই এমন অ্যাপগুলির দ্বারা ব্যবহৃত। যখন কল করা হয়, প্ল্যাটফর্মটি অভ্যন্তরীণভাবে পোর্ট সূচী সমাধান করে একটি তিন-পছন্দ নির্বাচন ডায়ালগের মাধ্যমে নির্বাচিত সক্রিয় সদস্যতা নিষ্ক্রিয় করতে যদি কোনো উপলব্ধ পোর্ট না থাকে। অ্যান্ড্রয়েড 13 এবং উচ্চতর টার্গেট করা অ্যাপগুলি অবশ্যই একটি অবৈধ সাবস্ক্রিপশন আইডি পাস করে সাবস্ক্রিপশন অক্ষম করতে এই API ব্যবহার করবে না; পরিবর্তে তাদের অবশ্যই switchToSubscription পদ্ধতি ব্যবহার করতে হবে (অ্যান্ড্রয়েড 13-এ যোগ করা হয়েছে) পোর্ট ইনডেক্স নির্দিষ্ট করা আছে।
  • (Android 13 এবং উচ্চতর) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback) : একটি প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করে। সক্রিয় সাবস্ক্রিপশনের উপর ক্যারিয়ারের বিশেষাধিকার সহ অ্যাপগুলিকে কল করা কোন পোর্টে সাবস্ক্রিপশন চালু করতে হবে তা নির্দিষ্ট করতে পারে।
  • (Android 13 এবং উচ্চতর) isSimPortAvailable : পাসিং পোর্ট সূচক উপলব্ধ কিনা তা ফেরত দেয়। কোনো সাবস্ক্রিপশন সক্রিয় না থাকলে বা নির্বাচিত পোর্টে ইনস্টল করা সাবস্ক্রিপশনের উপর কলিং অ্যাপের ক্যারিয়ারের বিশেষাধিকার থাকলে একটি পোর্ট উপলব্ধ।

EuiccService

  • (Android 13 এবং উচ্চতর) onSwitchToSubscriptionWithPort : একটি নির্দিষ্ট পোর্টে প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করে। LPA বাস্তবায়ন অবশ্যই Android 13 এবং উচ্চতর সংস্করণে এটি সমর্থন করবে।

টেলিফোনি ম্যানেজার

  • (Android 13 এবং উচ্চতর) getSimApplicationState : কার্ড আবেদনের অবস্থা নির্দেশ করে একটি ধ্রুবক প্রদান করে। এই API একটি শারীরিক স্লট সূচক এবং একটি পোর্ট সূচক উভয়ই পাস করে। getSimApplicationState(int physicalSlotIndex) পদ্ধতি (অবঞ্চিত) একটি simApplicationState অবজেক্ট পেতে শুধুমাত্র শারীরিক স্লট সূচক পাস করে।
  • (Android 13 এবং উচ্চতর) setSimSlotMapping(Collection<UiccSlotMapping> slots) : লজিক্যাল স্লটগুলিকে ফিজিক্যাল স্লট এবং পোর্টে ম্যাপ করে।
  • (Android 13 এবং উচ্চতর) Collection<UiccSlotMapping> getSimSlotMapping : লজিক্যাল স্লট থেকে ফিজিক্যাল সিম স্লট এবং পোর্ট ইনডেক্সে ম্যাপিং পায়।

ব্যবহারকারী ইন্টারফেস

eSIM পোর্ট নির্বাচনের অস্পষ্টতা সমাধান করতে, MEP সমর্থনকারী ডিভাইসগুলিতে, ব্যবহারকারীদের অবশ্যই একটি নতুন সাবস্ক্রিপশন সক্রিয় করতে সক্রিয় সদস্যতার একটি অক্ষম করতে সক্ষম হতে হবে। অ্যান্ড্রয়েড 13-এ, AOSP একটি তিন-পছন্দের ডায়ালগ সহ একটি ব্যবহারকারী প্রবাহ অন্তর্ভুক্ত করে যা সেটিংস অ্যাপ থেকে ব্যবহারকারীর প্রবাহ সক্ষম করে সদস্যতাতে প্রয়োগ করা যেতে পারে। চিত্র 4 এই UX প্রবাহের একটি উদাহরণ দেখায়।

MEP সিম সাবস্ক্রিপশনের জন্য ব্যবহারকারীর প্রবাহ

চিত্র 4. সিম সদস্যতা সক্ষম করার জন্য ব্যবহারকারীর প্রবাহ

বৈশিষ্ট্য পতাকা

MEP সমর্থন করার জন্য, ডিভাইসগুলিকে অবশ্যই নিম্নলিখিত বৈশিষ্ট্যের পতাকাগুলি ঘোষণা করতে হবে:

এলপিএ বাস্তবায়ন

MEP সমর্থন করার জন্য, নিশ্চিত করুন যে আপনার LPA বাস্তবায়ন নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে:

  • একাধিক পোর্ট সমর্থন করতে EuiccService থেকে APIs প্রয়োগ করে।
  • পোর্ট নির্বাচন এবং প্রোফাইল সক্ষম করার জন্য API ব্যবহার করে।
  • UX প্রদান করে যা ক্যারিয়ার অ্যাপকে নির্বাচিত পোর্টে প্রোফাইল সক্ষম করতে দেয়।

বৈধতা

আপনার MEP বৈশিষ্ট্যের বাস্তবায়ন পরীক্ষা করতে, নিশ্চিত করুন যে বিল্ডগুলি নিম্নলিখিত CTS টেস্ট কেসগুলি পাস করেছে (সর্বজনীন APIগুলির জন্য): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts

ডিভাইস নির্মাতাদের তাদের মডেম, eUICC চিপ এবং eSIM OS বিক্রেতাদের সাথেও কাজ করা উচিত যাতে ডিভাইসটি নিম্নলিখিতগুলি করতে পারে:

  • দুটি eSIM প্রোফাইল দুটি ভিন্ন নেটওয়ার্কে সক্রিয় এবং সংযুক্ত করা যেতে পারে৷
  • যেকোন ইসিম পোর্টে ই-সিম প্রোফাইল সক্রিয় এবং নিষ্ক্রিয় করা যেতে পারে।
  • ব্যবহারকারীদের প্রোফাইল স্যুইচ করার অনুমতি দেয় ক্যারিয়ার অ্যাপ দ্বারা ট্রিগার করা একটি UX প্রবাহ রয়েছে।
,

Android 13 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য, Android eUICC-এর জন্য একাধিক সক্রিয় প্রোফাইল (MEPs) সমর্থন করে। এই বৈশিষ্ট্যটি ডিভাইসগুলিকে একটি একক eSIM চিপ ব্যবহার করে ডুয়াল সিম সমর্থন করার অনুমতি দেয়, যার একাধিক সিম প্রোফাইল থাকতে পারে এবং একই সময়ে দুটি ভিন্ন ক্যারিয়ারের সাথে সংযোগ করতে পারে। ডিভাইস নির্মাতাদের অবশ্যই তাদের ডিভাইসে এই বৈশিষ্ট্যটি সংহত করতে SoC বিক্রেতা এবং eSIM চিপসেট বিক্রেতাদের সাথে কাজ করতে হবে।

পটভূমি

অ্যান্ড্রয়েড 12 এবং তার চেয়ে কম সংস্করণে চলমান ডিভাইসগুলিতে, AOSP একটি একক eSIM একই সময়ে একাধিক প্রোফাইল সমর্থন করার জন্য সীমিত সমর্থন প্রদান করে। eSIM অফার করে উল্লেখযোগ্য স্থান এবং খরচ সাশ্রয় সত্ত্বেও, ডুয়াল সিম সমর্থনের এই অভাব ডিভাইস নির্মাতাদের শুধুমাত্র eSIM ডিভাইসগুলি গ্রহণ করতে বাধা দেয়। শুধুমাত্র eSIM-এর ডিভাইসে ডুয়াল সিম সমর্থন প্রদান করতে, ডিভাইস নির্মাতাদের ডিভাইসে দুটি eSIM উপাদান প্যাক করতে হবে, যা উপাদানের বিল (BOM) খরচ বাড়ায় এবং সাবস্ক্রিপশন পরিচালনার জন্য খারাপ ব্যবহারকারীর অভিজ্ঞতার দিকে পরিচালিত করে। অ্যান্ড্রয়েড 13 থেকে AOSP-এ উপলব্ধ MEP বৈশিষ্ট্যটি এই সমস্যার সমাধান করে।

eUICC আর্কিটেকচার পরিবর্তন

এই বিভাগটি Android 13 চালিত MEP সহ ডিভাইসগুলির জন্য এবং MEP Android 12 এবং তার চেয়ে কম সংস্করণ ছাড়া চলমান ডিভাইসগুলির জন্য eSIM চিপ আর্কিটেকচারের একটি তুলনা প্রদান করে৷ চিত্র 1-এ দেখানো MEP সমর্থনকারী ডিভাইসগুলির জন্য, eSIM স্লটে একাধিক eUICC পোর্ট রয়েছে, যেখানে প্রতিটি পোর্টে একটি সক্রিয় প্রোফাইল থাকতে পারে। এই আর্কিটেকচারের সাথে, একটি একক eUICC (একটি একক ফিজিক্যাল স্লট) একটি মডেম বেসব্যান্ডের সাথে প্রতিটি eUICC পোর্ট লিঙ্ক থাকার মাধ্যমে ডুয়াল সিম ডুয়াল স্ট্যান্ডবাই (DSDS) সমর্থন করে। চিত্র 2 MEP ছাড়া ডিভাইসের জন্য eSIM চিপ আর্কিটেকচার বর্ণনা করে।

MEP সমর্থন সহ eSIM চিপ আর্কিটেকচার

চিত্র 1. এমইপি সমর্থন সহ eSIM চিপ আর্কিটেকচার (Android 13 বা উচ্চতর)

MEP সমর্থন ছাড়া eSIM চিপ আর্কিটেকচার

চিত্র 2. এমইপি সমর্থন ছাড়াই eSIM চিপ আর্কিটেকচার (Android 12 বা নিম্নতর)

একাধিক সক্রিয় প্রোফাইলের জন্য API তথ্য প্রবাহ

চিত্র 3 এন্ড্রয়েড 13-এ eUICC-এর জন্য MEP-এর জন্য তথ্য প্রবাহ বর্ণনা করে। টেলিফোনি ফ্রেমওয়ার্ক UiccPort ক্লাস অন্তর্ভুক্ত করে, যা eUICC-তে শারীরিক কাঠামোর প্রতিনিধিত্ব করে। UiccPort ক্লাসটি সব ধরনের সিম কার্ডের জন্য ব্যবহৃত হয়: ফিজিক্যাল সিম (pSIM), ইন্টিগ্রেটেড সিম (iSIM), এবং এমবেডেড সিম (eSIM)। একাধিক পোর্ট সহ একটি eUICC এর জন্য, একটি একক UiccSlot অবজেক্ট এবং একাধিক UiccPort দৃষ্টান্তে UiccCard অবজেক্ট ম্যাপ। প্রতিটি UiccPort উদাহরণ সর্বাধিক একটি UiccProfile উদাহরণের সাথে লিঙ্ক করতে পারে। এই প্রবাহটি UiccPort একটি লজিক্যাল স্লটে ম্যাপ করতে এবং UiccSlot (ভৌতিক স্লট) কে একাধিক লজিক্যাল স্লটে ম্যাপ করতে দেয়।

MEP তথ্য প্রবাহ

চিত্র 3. MEP সমর্থন সহ eUICC-এর জন্য তথ্য প্রবাহ

বাস্তবায়ন

এই বিভাগে HAL প্রয়োজনীয়তা, API, এবং ব্যবহারকারী ইন্টারফেস সম্পর্কে বিশদ সহ MEP বৈশিষ্ট্য কীভাবে বাস্তবায়ন করা যায় তা বর্ণনা করে। MEP সমর্থন করার জন্য ডিভাইস নির্মাতাদের SoC বিক্রেতা এবং eSIM চিপসেট বিক্রেতাদের সাথে কাজ করা উচিত।

HAL প্রয়োজনীয়তা

eUICC-এর জন্য MEP সমর্থন করতে, নিম্নলিখিত IRadio 2.0 AIDL HAL APIগুলি প্রয়োগ করুন৷

কার্ড স্ট্যাটাস

getIccCardStatusResponse পদ্ধতির প্রতিক্রিয়া হিসাবে মোডেমকে অবশ্যই CardStatus API সমর্থন করতে হবে। প্রতিক্রিয়াতে পোর্ট ইনডেক্স এবং SimPortSlotMapping দ্বারা নির্দিষ্ট করা ফিজিক্যাল স্লট সূচক অন্তর্ভুক্ত থাকতে হবে।

সিমস্লট স্ট্যাটাস

getSimSlotsStatus পদ্ধতির প্রতিক্রিয়া হিসাবে মোডেমটিকে অবশ্যই SimSlotStatus API সমর্থন করতে হবে। সিম স্লট স্ট্যাটাসে SimPortInfo ইন্টারফেসের একটি অ্যারে অন্তর্ভুক্ত থাকে, যার মধ্যে পোর্ট ইনডেক্স, সক্রিয় প্রোফাইলের জন্য ICCID এবং পোর্ট স্টেট অন্তর্ভুক্ত থাকে। মডেমকে অবশ্যই কমপক্ষে দুটি SimPortInfo বস্তু ফেরত দিতে হবে।

সেট সিমস্লটম্যাপিং

setSimSlotMapping পদ্ধতিটিকে অবশ্যই SimPortSlotMapping এর একটি অ্যারে পাস করতে হবে। অ্যারের সূচী হল লজিক্যাল স্লট এবং SimPortSlotMapping সংশ্লিষ্ট ম্যাপ করা পোর্ট এবং ফিজিক্যাল স্লট সূচক নির্দিষ্ট করে। setSimSlotMapping পদ্ধতি পোর্ট থেকে লজিক্যাল স্লটে ম্যাপিং সেট করে। LPA অ্যাপ সক্রিয় পোর্ট নির্বাচন করতে এই পদ্ধতি ব্যবহার করে।

EUICC-এর জন্য MEP সমর্থনকারী API

AOSP টেলিফোনি স্ট্যাকের অংশ হিসাবে একাধিক সক্রিয় প্রোফাইল সমর্থন করে এমন Android ডিভাইসগুলিকে নিম্নলিখিত APIগুলিকে সমর্থন করতে হবে৷

UiccCardInfo

  • (Android 13 এবং উচ্চতর) isMultipleEnabledProfilesSupported : এই UICC MEP সমর্থন করে কিনা তা ফেরত দেয়।
  • (Android 13 এবং উচ্চতর) getPorts : একটি নির্দিষ্ট UICC-এর জন্য সম্ভাব্য সমস্ত পোর্টের তালিকা প্রদান করে। যদি UICC একটি pSIM বা eSIM হয় যা MEP সমর্থন করে না, তাহলে একটি উপাদানের একটি তালিকা প্রদান করে।
  • (অপ্রচলিত) getIccId : একটি ICCID প্রদান করে। যেহেতু একটি UICC-এর MEP সহ ডিভাইসগুলির জন্য একাধিক ICCID থাকতে পারে, তার পরিবর্তে UiccPortInfo.getIccId() ব্যবহার করুন৷

(Android 13 এবং উচ্চতর) UiccPortInfo

  • getIccId : এই পোর্টে একটি সক্রিয় সদস্যতা থাকলে ICCID ফেরত দেয়।
  • getPortIndex : পোর্ট ইনডেক্স প্রদান করে।
  • getLogicalSlotIndex : সক্রিয় লজিক্যাল মডেম স্ট্যাক ইনডেক্স প্রদান করে।

সদস্যতা তথ্য

  • (Android 13 এবং উচ্চতর) getPortIndex : সাবস্ক্রিপশন সক্রিয় করা আছে এমন পোর্ট সূচী প্রদান করে। সদস্যতা অক্ষম করা হলে, INVALID_PORT_ID -1 প্রদান করে।

ইউআইসিসি ম্যানেজার

  • switchToSubscription : একটি প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করে। অ্যাক্টিভ সাবস্ক্রিপশনে ক্যারিয়ারের বিশেষাধিকার নেই এমন অ্যাপগুলির দ্বারা ব্যবহৃত। যখন কল করা হয়, প্ল্যাটফর্মটি অভ্যন্তরীণভাবে পোর্ট সূচী সমাধান করে একটি তিন-পছন্দ নির্বাচন ডায়ালগের মাধ্যমে নির্বাচিত সক্রিয় সদস্যতা নিষ্ক্রিয় করতে যদি কোনো উপলব্ধ পোর্ট না থাকে। অ্যান্ড্রয়েড 13 এবং উচ্চতর টার্গেট করা অ্যাপগুলি অবশ্যই একটি অবৈধ সাবস্ক্রিপশন আইডি পাস করে সাবস্ক্রিপশন অক্ষম করতে এই API ব্যবহার করবে না; পরিবর্তে তাদের অবশ্যই switchToSubscription পদ্ধতি ব্যবহার করতে হবে (অ্যান্ড্রয়েড 13-এ যোগ করা হয়েছে) পোর্ট ইনডেক্স নির্দিষ্ট করা আছে।
  • (Android 13 এবং উচ্চতর) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback) : একটি প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করে। সক্রিয় সাবস্ক্রিপশনের উপর ক্যারিয়ারের বিশেষাধিকার সহ অ্যাপগুলিকে কল করা কোন পোর্টে সাবস্ক্রিপশন চালু করতে হবে তা নির্দিষ্ট করতে পারে।
  • (Android 13 এবং উচ্চতর) isSimPortAvailable : পাসিং পোর্ট সূচক উপলব্ধ কিনা তা ফেরত দেয়। কোনো সাবস্ক্রিপশন সক্রিয় না থাকলে বা নির্বাচিত পোর্টে ইনস্টল করা সাবস্ক্রিপশনের উপর কলিং অ্যাপের ক্যারিয়ারের বিশেষাধিকার থাকলে একটি পোর্ট উপলব্ধ।

EuiccService

  • (Android 13 এবং উচ্চতর) onSwitchToSubscriptionWithPort : একটি নির্দিষ্ট পোর্টে প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করে। LPA বাস্তবায়ন অবশ্যই Android 13 এবং উচ্চতর সংস্করণে এটি সমর্থন করবে।

টেলিফোনি ম্যানেজার

  • (Android 13 এবং উচ্চতর) getSimApplicationState : কার্ড আবেদনের অবস্থা নির্দেশ করে একটি ধ্রুবক প্রদান করে। এই API একটি শারীরিক স্লট সূচক এবং একটি পোর্ট সূচক উভয়ই পাস করে। getSimApplicationState(int physicalSlotIndex) পদ্ধতি (অবঞ্চিত) একটি simApplicationState অবজেক্ট পেতে শুধুমাত্র শারীরিক স্লট সূচক পাস করে।
  • (Android 13 এবং উচ্চতর) setSimSlotMapping(Collection<UiccSlotMapping> slots) : লজিক্যাল স্লটগুলিকে ফিজিক্যাল স্লট এবং পোর্টে ম্যাপ করে।
  • (Android 13 এবং উচ্চতর) Collection<UiccSlotMapping> getSimSlotMapping : লজিক্যাল স্লট থেকে ফিজিক্যাল সিম স্লট এবং পোর্ট ইনডেক্সে ম্যাপিং পায়।

ব্যবহারকারী ইন্টারফেস

eSIM পোর্ট নির্বাচনের অস্পষ্টতা সমাধান করতে, MEP সমর্থনকারী ডিভাইসগুলিতে, ব্যবহারকারীদের অবশ্যই একটি নতুন সাবস্ক্রিপশন সক্রিয় করতে সক্রিয় সদস্যতার একটি অক্ষম করতে সক্ষম হতে হবে। অ্যান্ড্রয়েড 13-এ, AOSP একটি তিন-পছন্দের ডায়ালগ সহ একটি ব্যবহারকারী প্রবাহ অন্তর্ভুক্ত করে যা সেটিংস অ্যাপ থেকে ব্যবহারকারীর প্রবাহ সক্ষম করে সদস্যতাতে প্রয়োগ করা যেতে পারে। চিত্র 4 এই UX প্রবাহের একটি উদাহরণ দেখায়।

MEP সিম সাবস্ক্রিপশনের জন্য ব্যবহারকারীর প্রবাহ

চিত্র 4. সিম সদস্যতা সক্ষম করার জন্য ব্যবহারকারীর প্রবাহ

বৈশিষ্ট্য পতাকা

MEP সমর্থন করার জন্য, ডিভাইসগুলিকে অবশ্যই নিম্নলিখিত বৈশিষ্ট্যের পতাকাগুলি ঘোষণা করতে হবে:

এলপিএ বাস্তবায়ন

MEP সমর্থন করার জন্য, নিশ্চিত করুন যে আপনার LPA বাস্তবায়ন নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে:

  • একাধিক পোর্ট সমর্থন করতে EuiccService থেকে APIs প্রয়োগ করে।
  • পোর্ট নির্বাচন এবং প্রোফাইল সক্ষম করার জন্য API ব্যবহার করে।
  • UX প্রদান করে যা ক্যারিয়ার অ্যাপকে নির্বাচিত পোর্টে প্রোফাইল সক্ষম করতে দেয়।

বৈধতা

আপনার MEP বৈশিষ্ট্যের বাস্তবায়ন পরীক্ষা করতে, নিশ্চিত করুন যে বিল্ডগুলি নিম্নলিখিত CTS টেস্ট কেসগুলি পাস করেছে (সর্বজনীন APIগুলির জন্য): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts

ডিভাইস নির্মাতাদের তাদের মডেম, eUICC চিপ এবং eSIM OS বিক্রেতাদের সাথেও কাজ করা উচিত যাতে ডিভাইসটি নিম্নলিখিতগুলি করতে পারে:

  • দুটি eSIM প্রোফাইল দুটি ভিন্ন নেটওয়ার্কে সক্রিয় এবং সংযুক্ত করা যেতে পারে৷
  • যেকোন ইসিম পোর্টে ই-সিম প্রোফাইল সক্রিয় এবং নিষ্ক্রিয় করা যেতে পারে।
  • ব্যবহারকারীদের প্রোফাইল স্যুইচ করার অনুমতি দেয় ক্যারিয়ার অ্যাপ দ্বারা ট্রিগার করা একটি UX প্রবাহ রয়েছে।
,

Android 13 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য, Android eUICC-এর জন্য একাধিক সক্রিয় প্রোফাইল (MEPs) সমর্থন করে। এই বৈশিষ্ট্যটি ডিভাইসগুলিকে একটি একক eSIM চিপ ব্যবহার করে ডুয়াল সিম সমর্থন করার অনুমতি দেয়, যার একাধিক সিম প্রোফাইল থাকতে পারে এবং একই সময়ে দুটি ভিন্ন ক্যারিয়ারের সাথে সংযোগ করতে পারে। ডিভাইস নির্মাতাদের অবশ্যই তাদের ডিভাইসে এই বৈশিষ্ট্যটি সংহত করতে SoC বিক্রেতা এবং eSIM চিপসেট বিক্রেতাদের সাথে কাজ করতে হবে।

পটভূমি

অ্যান্ড্রয়েড 12 এবং তার চেয়ে কম সংস্করণে চলমান ডিভাইসগুলিতে, AOSP একটি একক eSIM একই সময়ে একাধিক প্রোফাইল সমর্থন করার জন্য সীমিত সমর্থন প্রদান করে। eSIM অফার করে উল্লেখযোগ্য স্থান এবং খরচ সাশ্রয় সত্ত্বেও, ডুয়াল সিম সমর্থনের এই অভাব ডিভাইস নির্মাতাদের শুধুমাত্র eSIM ডিভাইসগুলি গ্রহণ করতে বাধা দেয়। শুধুমাত্র eSIM-এর ডিভাইসে ডুয়াল সিম সমর্থন প্রদান করতে, ডিভাইস নির্মাতাদের ডিভাইসে দুটি eSIM উপাদান প্যাক করতে হবে, যা উপাদানের বিল (BOM) খরচ বাড়ায় এবং সাবস্ক্রিপশন পরিচালনার জন্য খারাপ ব্যবহারকারীর অভিজ্ঞতার দিকে পরিচালিত করে। অ্যান্ড্রয়েড 13 থেকে AOSP-এ উপলব্ধ MEP বৈশিষ্ট্যটি এই সমস্যার সমাধান করে।

eUICC আর্কিটেকচার পরিবর্তন

এই বিভাগটি Android 13 চালিত MEP সহ ডিভাইসগুলির জন্য এবং MEP Android 12 এবং তার চেয়ে কম সংস্করণ ছাড়া চলমান ডিভাইসগুলির জন্য eSIM চিপ আর্কিটেকচারের একটি তুলনা প্রদান করে৷ চিত্র 1-এ দেখানো MEP সমর্থনকারী ডিভাইসগুলির জন্য, eSIM স্লটে একাধিক eUICC পোর্ট রয়েছে, যেখানে প্রতিটি পোর্টে একটি সক্রিয় প্রোফাইল থাকতে পারে। এই আর্কিটেকচারের সাথে, একটি একক eUICC (একটি একক ফিজিক্যাল স্লট) একটি মডেম বেসব্যান্ডের সাথে প্রতিটি eUICC পোর্ট লিঙ্ক থাকার মাধ্যমে ডুয়াল সিম ডুয়াল স্ট্যান্ডবাই (DSDS) সমর্থন করে। চিত্র 2 MEP ছাড়া ডিভাইসের জন্য eSIM চিপ আর্কিটেকচার বর্ণনা করে।

MEP সমর্থন সহ eSIM চিপ আর্কিটেকচার

চিত্র 1. এমইপি সমর্থন সহ eSIM চিপ আর্কিটেকচার (Android 13 বা উচ্চতর)

MEP সমর্থন ছাড়া eSIM চিপ আর্কিটেকচার

চিত্র 2. এমইপি সমর্থন ছাড়াই eSIM চিপ আর্কিটেকচার (Android 12 বা নিম্নতর)

একাধিক সক্রিয় প্রোফাইলের জন্য API তথ্য প্রবাহ

চিত্র 3 এন্ড্রয়েড 13-এ eUICC-এর জন্য MEP-এর জন্য তথ্য প্রবাহ বর্ণনা করে। টেলিফোনি ফ্রেমওয়ার্ক UiccPort ক্লাস অন্তর্ভুক্ত করে, যা eUICC-তে শারীরিক কাঠামোর প্রতিনিধিত্ব করে। UiccPort ক্লাসটি সব ধরনের সিম কার্ডের জন্য ব্যবহৃত হয়: ফিজিক্যাল সিম (pSIM), ইন্টিগ্রেটেড সিম (iSIM), এবং এমবেডেড সিম (eSIM)। একাধিক পোর্ট সহ একটি eUICC এর জন্য, একটি একক UiccSlot অবজেক্ট এবং একাধিক UiccPort দৃষ্টান্তে UiccCard অবজেক্ট ম্যাপ। প্রতিটি UiccPort উদাহরণ সর্বাধিক একটি UiccProfile উদাহরণের সাথে লিঙ্ক করতে পারে। এই প্রবাহটি UiccPort একটি লজিক্যাল স্লটে ম্যাপ করতে এবং UiccSlot (ভৌতিক স্লট) কে একাধিক লজিক্যাল স্লটে ম্যাপ করতে দেয়।

MEP তথ্য প্রবাহ

চিত্র 3. MEP সমর্থন সহ eUICC-এর জন্য তথ্য প্রবাহ

বাস্তবায়ন

এই বিভাগে HAL প্রয়োজনীয়তা, API, এবং ব্যবহারকারী ইন্টারফেস সম্পর্কে বিশদ সহ MEP বৈশিষ্ট্য কীভাবে বাস্তবায়ন করা যায় তা বর্ণনা করে। MEP সমর্থন করার জন্য ডিভাইস নির্মাতাদের SoC বিক্রেতা এবং eSIM চিপসেট বিক্রেতাদের সাথে কাজ করা উচিত।

HAL প্রয়োজনীয়তা

eUICC-এর জন্য MEP সমর্থন করতে, নিম্নলিখিত IRadio 2.0 AIDL HAL APIগুলি প্রয়োগ করুন৷

কার্ড স্ট্যাটাস

getIccCardStatusResponse পদ্ধতির প্রতিক্রিয়া হিসাবে মোডেমকে অবশ্যই CardStatus API সমর্থন করতে হবে। প্রতিক্রিয়াতে পোর্ট ইনডেক্স এবং SimPortSlotMapping দ্বারা নির্দিষ্ট করা ফিজিক্যাল স্লট সূচক অন্তর্ভুক্ত থাকতে হবে।

সিমস্লট স্ট্যাটাস

getSimSlotsStatus পদ্ধতির প্রতিক্রিয়া হিসাবে মোডেমটিকে অবশ্যই SimSlotStatus API সমর্থন করতে হবে। সিম স্লট স্ট্যাটাসে SimPortInfo ইন্টারফেসের একটি অ্যারে অন্তর্ভুক্ত থাকে, যার মধ্যে পোর্ট ইনডেক্স, সক্রিয় প্রোফাইলের জন্য ICCID এবং পোর্ট স্টেট অন্তর্ভুক্ত থাকে। মডেমকে অবশ্যই কমপক্ষে দুটি SimPortInfo বস্তু ফেরত দিতে হবে।

সেট সিমস্লটম্যাপিং

setSimSlotMapping পদ্ধতিটিকে অবশ্যই SimPortSlotMapping এর একটি অ্যারে পাস করতে হবে। অ্যারের সূচী হল লজিক্যাল স্লট এবং SimPortSlotMapping সংশ্লিষ্ট ম্যাপ করা পোর্ট এবং ফিজিক্যাল স্লট সূচক নির্দিষ্ট করে। setSimSlotMapping পদ্ধতি পোর্ট থেকে লজিক্যাল স্লটে ম্যাপিং সেট করে। LPA অ্যাপ সক্রিয় পোর্ট নির্বাচন করতে এই পদ্ধতি ব্যবহার করে।

EUICC-এর জন্য MEP সমর্থনকারী API

AOSP টেলিফোনি স্ট্যাকের অংশ হিসাবে একাধিক সক্রিয় প্রোফাইল সমর্থন করে এমন Android ডিভাইসগুলিকে নিম্নলিখিত APIগুলিকে সমর্থন করতে হবে৷

UiccCardInfo

  • (Android 13 এবং উচ্চতর) isMultipleEnabledProfilesSupported : এই UICC MEP সমর্থন করে কিনা তা ফেরত দেয়।
  • (Android 13 এবং উচ্চতর) getPorts : একটি নির্দিষ্ট UICC-এর জন্য সম্ভাব্য সমস্ত পোর্টের তালিকা প্রদান করে। যদি UICC একটি pSIM বা eSIM হয় যা MEP সমর্থন করে না, তাহলে একটি উপাদানের একটি তালিকা প্রদান করে।
  • (অপ্রচলিত) getIccId : একটি ICCID প্রদান করে। যেহেতু একটি UICC-এর MEP সহ ডিভাইসগুলির জন্য একাধিক ICCID থাকতে পারে, তার পরিবর্তে UiccPortInfo.getIccId() ব্যবহার করুন৷

(Android 13 এবং উচ্চতর) UiccPortInfo

  • getIccId : এই পোর্টে একটি সক্রিয় সদস্যতা থাকলে ICCID ফেরত দেয়।
  • getPortIndex : পোর্ট ইনডেক্স প্রদান করে।
  • getLogicalSlotIndex : সক্রিয় লজিক্যাল মডেম স্ট্যাক ইনডেক্স প্রদান করে।

সদস্যতা তথ্য

  • (Android 13 এবং উচ্চতর) getPortIndex : সাবস্ক্রিপশন সক্রিয় করা আছে এমন পোর্ট সূচী প্রদান করে। সদস্যতা অক্ষম করা হলে, INVALID_PORT_ID -1 প্রদান করে।

ইউআইসিসি ম্যানেজার

  • switchToSubscription : একটি প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করে। অ্যাক্টিভ সাবস্ক্রিপশনে ক্যারিয়ারের বিশেষাধিকার নেই এমন অ্যাপগুলির দ্বারা ব্যবহৃত। যখন কল করা হয়, প্ল্যাটফর্মটি অভ্যন্তরীণভাবে পোর্ট সূচী সমাধান করে একটি তিন-পছন্দ নির্বাচন ডায়ালগের মাধ্যমে নির্বাচিত সক্রিয় সদস্যতা নিষ্ক্রিয় করতে যদি কোনো উপলব্ধ পোর্ট না থাকে। অ্যান্ড্রয়েড 13 এবং উচ্চতর টার্গেট করা অ্যাপগুলি অবশ্যই একটি অবৈধ সাবস্ক্রিপশন আইডি পাস করে সাবস্ক্রিপশন অক্ষম করতে এই API ব্যবহার করবে না; পরিবর্তে তাদের অবশ্যই switchToSubscription পদ্ধতি ব্যবহার করতে হবে (অ্যান্ড্রয়েড 13-এ যোগ করা হয়েছে) পোর্ট ইনডেক্স নির্দিষ্ট করা আছে।
  • (Android 13 এবং উচ্চতর) switchToSubscription(int subscriptionId, int portIndex, PendingIntent callback) : একটি প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করে। সক্রিয় সাবস্ক্রিপশনের উপর ক্যারিয়ারের বিশেষাধিকার সহ অ্যাপগুলিকে কল করা কোন পোর্টে সাবস্ক্রিপশন চালু করতে হবে তা নির্দিষ্ট করতে পারে।
  • (Android 13 এবং উচ্চতর) isSimPortAvailable : পাসিং পোর্ট সূচক উপলব্ধ কিনা তা ফেরত দেয়। কোনো সাবস্ক্রিপশন সক্রিয় না থাকলে বা নির্বাচিত পোর্টে ইনস্টল করা সাবস্ক্রিপশনের উপর কলিং অ্যাপের ক্যারিয়ারের বিশেষাধিকার থাকলে একটি পোর্ট উপলব্ধ।

EuiccService

  • (Android 13 এবং উচ্চতর) onSwitchToSubscriptionWithPort : একটি নির্দিষ্ট পোর্টে প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করে। LPA বাস্তবায়ন অবশ্যই Android 13 এবং উচ্চতর সংস্করণে এটি সমর্থন করবে।

টেলিফোনি ম্যানেজার

  • (Android 13 এবং উচ্চতর) getSimApplicationState : কার্ড আবেদনের অবস্থা নির্দেশ করে একটি ধ্রুবক প্রদান করে। এই API একটি শারীরিক স্লট সূচক এবং একটি পোর্ট সূচক উভয়ই পাস করে। getSimApplicationState(int physicalSlotIndex) পদ্ধতি (অবঞ্চিত) একটি simApplicationState অবজেক্ট পেতে শুধুমাত্র শারীরিক স্লট সূচক পাস করে।
  • (Android 13 এবং উচ্চতর) setSimSlotMapping(Collection<UiccSlotMapping> slots) : লজিক্যাল স্লটগুলিকে ফিজিক্যাল স্লট এবং পোর্টে ম্যাপ করে।
  • (Android 13 এবং উচ্চতর) Collection<UiccSlotMapping> getSimSlotMapping : লজিক্যাল স্লট থেকে ফিজিক্যাল সিম স্লট এবং পোর্ট ইনডেক্সে ম্যাপিং পায়।

ব্যবহারকারী ইন্টারফেস

eSIM পোর্ট নির্বাচনের অস্পষ্টতা সমাধান করতে, MEP সমর্থনকারী ডিভাইসগুলিতে, ব্যবহারকারীদের অবশ্যই একটি নতুন সাবস্ক্রিপশন সক্রিয় করতে সক্রিয় সদস্যতার একটি অক্ষম করতে সক্ষম হতে হবে। অ্যান্ড্রয়েড 13-এ, AOSP একটি তিন-পছন্দের ডায়ালগ সহ একটি ব্যবহারকারী প্রবাহ অন্তর্ভুক্ত করে যা সেটিংস অ্যাপ থেকে ব্যবহারকারীর প্রবাহ সক্ষম করে সদস্যতাতে প্রয়োগ করা যেতে পারে। চিত্র 4 এই UX প্রবাহের একটি উদাহরণ দেখায়।

MEP সিম সাবস্ক্রিপশনের জন্য ব্যবহারকারীর প্রবাহ

চিত্র 4. সিম সদস্যতা সক্ষম করার জন্য ব্যবহারকারীর প্রবাহ

বৈশিষ্ট্য পতাকা

MEP সমর্থন করার জন্য, ডিভাইসগুলিকে অবশ্যই নিম্নলিখিত বৈশিষ্ট্যের পতাকাগুলি ঘোষণা করতে হবে:

এলপিএ বাস্তবায়ন

MEP সমর্থন করার জন্য, নিশ্চিত করুন যে আপনার LPA বাস্তবায়ন নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে:

  • একাধিক পোর্ট সমর্থন করতে EuiccService থেকে APIs প্রয়োগ করে।
  • পোর্ট নির্বাচন এবং প্রোফাইল সক্ষম করার জন্য API ব্যবহার করে।
  • UX প্রদান করে যা ক্যারিয়ার অ্যাপকে নির্বাচিত পোর্টে প্রোফাইল সক্ষম করতে দেয়।

বৈধতা

আপনার MEP বৈশিষ্ট্যের বাস্তবায়ন পরীক্ষা করতে, নিশ্চিত করুন যে বিল্ডগুলি নিম্নলিখিত CTS টেস্ট কেসগুলি পাস করেছে (সর্বজনীন APIগুলির জন্য): /platform/cts/tests/tests/telephony/current/src/android/telephony/euicc/cts

ডিভাইস নির্মাতাদের তাদের মডেম, eUICC চিপ এবং eSIM OS বিক্রেতাদের সাথেও কাজ করা উচিত যাতে ডিভাইসটি নিম্নলিখিতগুলি করতে পারে:

  • দুটি eSIM প্রোফাইল দুটি ভিন্ন নেটওয়ার্কে সক্রিয় এবং সংযুক্ত করা যেতে পারে৷
  • যেকোন ইসিম পোর্টে ই-সিম প্রোফাইল সক্রিয় এবং নিষ্ক্রিয় করা যেতে পারে।
  • ব্যবহারকারীদের প্রোফাইল স্যুইচ করার অনুমতি দেয় ক্যারিয়ার অ্যাপ দ্বারা ট্রিগার করা একটি UX প্রবাহ রয়েছে।