ডোমেন নির্বাচন পরিষেবা

অ্যান্ড্রয়েড 15 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য, আপনি DomainSelectionService সিস্টেম API ব্যবহার করে সার্কিট সুইচড নেটওয়ার্কগুলির মাধ্যমে IMS পরিষেবা এবং উত্তরাধিকার পরিষেবাগুলির মধ্যে ডোমেন নির্বাচন বাস্তবায়ন করতে পারেন৷ DomainSelectionService হল Android প্ল্যাটফর্ম এবং একটি বিক্রেতা প্রদত্ত ডোমেন নির্বাচন বাস্তবায়নের মধ্যে একটি সু-সংজ্ঞায়িত ইন্টারফেস। এই ইন্টারফেসটি বিক্রেতা বাস্তবায়নকে প্ল্যাটফর্মে সিগন্যালিং তথ্য প্রদান করতে দেয়, যেমন ডোমেন যে আউটগোয়িং কল এবং এসএমএস স্থাপন করা হয় এবং নেটওয়ার্ক স্ক্যানিংয়ে নেটওয়ার্ক টাইপ পছন্দ, প্ল্যাটফর্মে।

ডোমেইন-নির্বাচন-আর্কিটেকচার

চিত্র 1. ডোমেন নির্বাচন বৈশিষ্ট্যের জন্য আর্কিটেকচার ডায়াগ্রাম

উদাহরণ এবং উৎস

Android TelephonyDomainSelectionService এ AOSP-এ ডোমেন নির্বাচন বৈশিষ্ট্যের জন্য একটি রেফারেন্স বাস্তবায়ন প্রদান করে। DomainSelectionService API-এর জন্য বিস্তারিত ডকুমেন্টেশনের জন্য, DomainSelectionService এবং API-এর অন্যান্য ক্লাসগুলি দেখুন।

বাস্তবায়ন

একটি অ্যান্ড্রয়েড ডিভাইসে ডোমেন নির্বাচন বৈশিষ্ট্য বাস্তবায়ন করতে, নিম্নলিখিত পদক্ষেপগুলি প্রয়োজন:

  1. একটি ডোমেন নির্বাচন অ্যাপ তৈরি করুন। পরিষেবাটি অবশ্যই AndroidManifest.xml ফাইলে সংজ্ঞায়িত করতে হবে৷

  2. প্ল্যাটফর্মটিকে DomainSelectionService বাস্তবায়নে আবদ্ধ করতে ডিভাইস ওভারলেতে একটি কনফিগারেশন যোগ করুন।

  3. ডোমেন নির্বাচন বৈশিষ্ট্যের জন্য প্রয়োজনীয় রেডিও HAL ইন্টারফেস সমর্থন করুন।

এই বিভাগটি এই পদক্ষেপগুলির আরও বিশদ প্রদান করে।

AndroidManifest.xml-এ পরিষেবা এন্ট্রি যোগ করুন

আপনার ডোমেন নির্বাচন অ্যাপ ফ্রেমওয়ার্কের সাথে DomainSelectionService পরিষেবা নিবন্ধন করার জন্য, নিম্নলিখিত বিন্যাসটি ব্যবহার করে ম্যানিফেস্ট ফাইলে একটি পরিষেবা এন্ট্রি যোগ করুন:

<service
     android:name="com.example.domainselection.DomainSelectionService"
     android:directBootAware="true"
     android:persistent="true"
     …
     android:permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE"
     …
    <intent-filter>
        <action android:name="android.telephony.DomainSelectionService"/>
    </intent-filter>
    …
</service>

AndroidManifest.xml এ পরিষেবার সংজ্ঞা অবশ্যই ডোমেন নির্বাচন বৈশিষ্ট্যটি পরিচালনা করার জন্য নিম্নলিখিত বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করবে৷

  • directBootAware="true" : ব্যবহারকারী ডিভাইসটি আনলক করার আগে পরিষেবাটিকে টেলিফোনি দ্বারা আবিষ্কার এবং চালানোর অনুমতি দেয়। ব্যবহারকারী ডিভাইসটি আনলক করার আগে পরিষেবাটি ডিভাইস-এনক্রিপ্ট করা স্টোরেজ অ্যাক্সেস করতে পারে না। আরও তথ্যের জন্য, সমর্থন সরাসরি বুট মোড এবং ফাইল-ভিত্তিক এনক্রিপশন দেখুন।

  • persistent="true" : মেমরি পুনরুদ্ধার করার জন্য পরিষেবাটিকে নিরবচ্ছিন্নভাবে চালানোর অনুমতি দেয় এবং সিস্টেমের দ্বারা হত্যা করা হয় না। এই অ্যাট্রিবিউটটি তখনই কাজ করে যখন অ্যাপটি একটি সিস্টেম অ্যাপ হিসেবে তৈরি করা হয়।

  • permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE" : নিশ্চিত করে যে শুধুমাত্র BIND_DOMAIN_SELECTION_SERVICE অনুমতি আছে এমন একটি প্রক্রিয়াই অ্যাপের সাথে আবদ্ধ হতে পারে। এটি একটি দুর্বৃত্ত অ্যাপকে পরিষেবার সাথে আবদ্ধ হতে বাধা দেয়, কারণ শুধুমাত্র সিস্টেম অ্যাপগুলিকে ফ্রেমওয়ার্ক দ্বারা অনুমতি দেওয়া যেতে পারে৷

পরিষেবাটিকে অবশ্যই android.telephony.DomainSelectionService অ্যাকশনের সাথে intent-filter উপাদান উল্লেখ করতে হবে। এটি ফ্রেমওয়ার্কটিকে DomainSelectionService পরিষেবা খুঁজে পেতে দেয়।

ডিভাইস ওভারলে কনফিগারেশন সংজ্ঞায়িত করুন

প্ল্যাটফর্মটি নিরাপদে DomainSelectionService পরিষেবার সাথে আবদ্ধ হওয়ার জন্য, ডিভাইস ওভারলেতে নিম্নলিখিত কনফিগারেশন যোগ করুন:

যেহেতু অ্যান্ড্রয়েড তৃতীয় পক্ষের ডাউনলোডযোগ্য DomainSelectionService বাস্তবায়ন সহ অ্যাপগুলিকে সমর্থন করে না, তাই ডোমেন নির্বাচন অ্যাপটি অবশ্যই একটি সিস্টেম অ্যাপ হতে হবে যা /system_ext/priv-app/ অথবা /product/priv-app/ ফোল্ডারে থাকে। কাঠামোটি যাচাই করে যে বাস্তবায়নের প্যাকেজ নামটি ডিভাইসের ওভারলে মানের সাথে মেলে কিনা তা নিশ্চিত করতে শুধুমাত্র বিশ্বস্ত, আগে থেকে ইনস্টল করা অ্যাপগুলি আবদ্ধ।

রেডিও HAL ইন্টারফেস সমর্থন করে

ডোমেন নির্বাচন বৈশিষ্ট্য সক্রিয় করতে, নিম্নলিখিত প্রয়োজনীয় রেডিও HAL ইন্টারফেস সমর্থন করুন:

  • IRadioNetwork

    void setEmergencyMode(int serial, EmergencyMode emcModeType);
    void triggerEmergencyNetworkScan(int serial,
            EmergencyNetworkScanTrigger request);
    void cancelEmergencyNetworkScan(int serial, boolean resetScan);
    void exitEmergencyMode(int serial);
    
  • IRadioNetworkIndication

    void emergencyNetworkScanResult(RadioIndicationType type,
            EmergencyRegResult result);
    

বৈধতা

টেলিফোনি ফ্রেমওয়ার্ক সঠিকভাবে DomainSelectionService ইন্টারফেসে সাড়া দিচ্ছে তা পরীক্ষা করতে, DomainSelectionServiceTestOnMockModem এ CTS পরীক্ষা চালান।