ভারসাম্যহীন ব্যবহারকারীদের জন্য ডিভাইস আচরণ কাস্টমাইজ করা

কোনো ডেটা ব্যালেন্স ছাড়াই অ্যান্ড্রয়েড ডিভাইসগুলি নেটওয়ার্ক ট্রাফিককে অনুমতি দেয়, যার জন্য ক্যারিয়ার এবং টেলিকোসগুলিকে প্রশমন প্রোটোকল প্রয়োগ করতে হয়। অ্যান্ড্রয়েড একটি জেনেরিক সমাধান প্রয়োগ করে যা বাহক এবং টেলকোগুলিকে একটি ডিভাইসের ব্যালেন্স ফুরিয়ে গেলে নির্দেশ করতে দেয়৷

অ্যান্ড্রয়েড প্ল্যাটফর্ম ক্যাপটিভ-পোর্টাল সনাক্তকরণ সংকেতের উপর ভিত্তি করে ট্রাফিক প্রশমনের জন্য একটি ডিফল্ট আচরণ সহ একটি ডিফল্ট ক্যারিয়ার অ্যাপ সরবরাহ করে। এটি ক্যারিয়ার এবং OEMকে কম খরচে এবং দুর্দান্ত নমনীয়তার সাথে আচরণ কাস্টমাইজ করার সুযোগও প্রদান করে।

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

ডিফল্ট ক্যারিয়ার অ্যাপটি platform/frameworks/base/packages/CarrierDefaultApp/ .

বাস্তবায়ন

ডিফল্ট ক্যারিয়ার অ্যাপটি কনফিগার করা হয়েছে যাতে কনফিগার না করা ক্যারিয়ারদের জন্য বাক্সের বাইরে আরও ভালো অভিজ্ঞতা প্রদান করা যায়। ক্যারিয়ার এই ডিফল্ট আচরণ ব্যবহার করতে পারেন. তারা ক্যারিয়ার কনফিগার XML ফাইলে সিগন্যাল-অ্যাকশন ম্যাপিং যোগ করে ডিফল্ট আচরণ ওভাররাইড করতে পারে। তারা ডিফল্ট অ্যাপ ব্যবহার না করার সিদ্ধান্ত নিতে পারে এবং পরিবর্তে তাদের নিজস্ব স্বতন্ত্র ক্যারিয়ার অ্যাপের সাথে UICC বিশেষাধিকার ব্যবহার করতে পারে।

বাস্তবায়ন ভূমিকা

সংকেত

অ্যান্ড্রয়েড ফ্রেমওয়ার্ক নিম্নলিখিত প্যারামিটারাইজড সংকেতগুলিতে অ্যাকশন কনফিগার করা সমর্থন করে:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

এই সংকেতগুলি frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java এ অবস্থিত।

সমর্থিত কর্ম

ডিফল্ট ক্যারিয়ার অ্যাপ সমর্থিত ক্রিয়াগুলির একটি সেট সংজ্ঞায়িত করে যা সমর্থিত সংকেতগুলিতে ম্যাপ করা যেতে পারে। এগুলি CarrierActionUtils.java তে সংজ্ঞায়িত করা হয়েছে:

    public static final int CARRIER_ACTION_ENABLE_METERED_APNS               = 0;
    public static final int CARRIER_ACTION_DISABLE_METERED_APNS              = 1;
    public static final int CARRIER_ACTION_DISABLE_RADIO                     = 2;
    public static final int CARRIER_ACTION_ENABLE_RADIO                      = 3;
    public static final int CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION          = 4;
    public static final int CARRIER_ACTION_SHOW_NO_DATA_SERVICE_NOTIFICATION = 5;
    public static final int CARRIER_ACTION_CANCEL_ALL_NOTIFICATIONS          = 6;

দ্রষ্টব্য: যদি একটি ক্যারিয়ার তাদের নিজস্ব স্বতন্ত্র অ্যাপ প্রয়োগ করে, তাহলে তারা এই বিভাগে উল্লিখিত সিগন্যালের জন্য সমর্থন প্রয়োগ করতে পারে। তারা তাদের নিজস্ব ক্রিয়াগুলিও সংজ্ঞায়িত এবং কনফিগার করতে পারে।

ডিফল্ট সিগন্যাল-অ্যাকশন ম্যাপিং

এই প্রক্রিয়া অনুসরণ করে ডিফল্ট কর্ম কনফিগার করুন:

  1. সমর্থিত সংকেতের জন্য একটি কী সংজ্ঞায়িত করুন।

    অ্যাকশন ম্যাপিংয়ের ডিফল্ট সংকেত CarrierConfigManager.java এ সংজ্ঞায়িত করা হয়েছে। সমর্থিত প্রতিটি সংকেতের একটি কী আছে:

    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY = "carrier_default_actions_on_redirection_string_array";
    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_DCFAILURE_STRING_ARRAY =
    "carrier_default_actions_on_dcfailure_string_array";
    
  2. সংকেত কীগুলির সাথে ডিফল্ট ক্রিয়াগুলি সংযুক্ত করুন৷

    ডিফল্ট অ্যাকশন আইডিগুলি সিগন্যাল কীগুলির সাথে সম্পর্কিত:

    sDefaults.putStringArray(KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY,                new String[]{
                    "1, 4"
                    //1: CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION
                    //4: CARRIER_ACTION_DISABLE_METERED_APNS
             });
    

    টেলিফোনি ফ্রেমওয়ার্ক এই ক্রিয়াগুলিকে সংশ্লিষ্ট সংকেতের সাথে মানচিত্র করে।

ডিফল্ট কর্ম ওভাররাইডিং

আপনি বাহক কনফিগার XML ফাইলে সমর্থিত সিগন্যালের জন্য কাস্টম অ্যাকশন সংজ্ঞায়িত করতে পারেন অ্যাকশন আইডি সংকেত কীগুলির সাথে সংযুক্ত করে ( CarrierConfigManager.java এ সংজ্ঞায়িত করা হয়েছে)। উদাহরণস্বরূপ, নিম্নলিখিত ম্যাপিং মিটার করা APNগুলিকে অক্ষম করে এবং পুনঃনির্দেশের উপর একটি পোর্টাল বিজ্ঞপ্তি দেখায়:

<string-array name="carrier_default_actions_on_redirection_string_array" num="2">
            <item value="1" />
            <item value="4" />
</string-array>

টেলিফোনি ফ্রেমওয়ার্ক এই কনফিগারেশনগুলি লোড করে এবং ডিফল্ট অ্যাকশনগুলিকে ওভাররাইড করে।

বৈধতা

এই বৈশিষ্ট্যের জন্য কোন CTS, CTS যাচাইকারী, বা GTS পরীক্ষা নেই।

বৈশিষ্ট্যটি যাচাই করতে এই ম্যানুয়াল যাচাইকরণ পরীক্ষাগুলি ব্যবহার করুন:

  1. টেলকোর ডিভাইস ভারসাম্যহীন সিগন্যাল বিজ্ঞপ্তি যাচাই করুন।
  2. ভারসাম্যের বাইরে থাকা অবস্থায় এবং Wi-Fi বন্ধ থাকাকালীন ট্র্যাফিক রিডাইরেক্ট থ্রটলিং যাচাই করুন।
  3. যাচাই করুন নেটওয়ার্ক ট্র্যাফিক বন্ধ করা হয়েছে এবং ভারসাম্যহীন অবস্থায় বিজ্ঞপ্তি UI উপস্থিত হয়।
  4. ভারসাম্যহীন অবস্থায় ভয়েস কল/VoLTE ফাংশন যাচাই করুন।
  5. ভারসাম্যহীন অবস্থায় ভিডিও কলিং ব্লক করা হয়েছে তা যাচাই করুন।
  6. Wi-Fi চালু থাকলে, ব্যবহারকারী ওয়েব ব্রাউজিং চালিয়ে যেতে পারেন যাচাই করুন, এবং ব্রাউজিং ট্র্যাফিক ভারসাম্যহীন অবস্থায় থাকা অবস্থায় নেটওয়ার্ক ট্র্যাফিক চালু করে না।
  7. ভারসাম্যহীন অবস্থায় Wi-Fi, WFC এবং ব্লুটুথ ফাংশন যাচাই করুন।
  8. Wi-Fi বন্ধ করুন। ভারসাম্যহীন বিজ্ঞপ্তি UI যাচাই করুন, এবং সাধারণ ব্রাউজিং ট্র্যাফিক টেলকো রেজিস্ট্রেশন ওয়েব সাইটে পুনঃনির্দেশিত হয় না। বিজ্ঞপ্তি UI-তে লিঙ্কে ক্লিক করে যাচাই করুন ব্রাউজারটিকে টেলকো রেজিস্ট্রেশন ওয়েব সাইটে নিয়ে আসে।
  9. নিশ্চিত করুন যে টগল করা বিমান মোড ট্র্যাফিক থ্রটলিং অবস্থা রিসেট করে না।
  10. যাচাই করুন যে একটি ইন-সার্ভিস সিম অদলবদল করা নেটওয়ার্ক ট্র্যাফিক অবস্থা পুনরায় সেট করে৷
  11. যাচাই করুন যে ভারসাম্যহীন সিম পুনরায় সন্নিবেশ করা হলে ট্রাফিক পুনঃনির্দেশ পুনরায় চালু হয় এবং আবার নেটওয়ার্ক ট্র্যাফিক থ্রটলিং পাওয়া যায়।
  12. যাচাই করুন যে ফোনটি রিবুট করলে পুনঃনির্দেশ পুনরায় সক্রিয় হয় এবং ট্র্যাফিক থ্রোটল এবং বিজ্ঞপ্তি UI ফিরিয়ে আনে।
  13. "ক্যাপটিভপোর্টাল" বিজ্ঞপ্তিতে আলতো চাপুন। ব্যবহারকারীকে ক্রেডিট যোগ করার অনুমতি দেওয়ার জন্য একটি সীমাবদ্ধ নেটওয়ার্ক সংযোগ প্রতিষ্ঠিত হয়েছে তা যাচাই করুন।
  14. যাচাই করুন যে সিম ব্যালেন্স রিফিল বা পুনরায় সক্রিয় করার ফলে সেলুলার নেটওয়ার্ক ট্র্যাফিক পুনরুদ্ধার হয় এবং টেলকো লিঙ্ক এবং কোনও ব্যালেন্স বিজ্ঞপ্তি চলে না যায়৷
  15. ডেটা পরিষেবা পুনরুদ্ধারের পরে স্বাস্থ্য পরীক্ষা।

ডিফল্ট অ্যাপটি ইউনিট পরীক্ষার কয়েকটি উদাহরণ এবং সেগুলি চালানোর জন্য একটি স্ক্রিপ্ট প্রদান করে ( tests/runtest.sh দেখুন)। আপনি যখন একটি কাস্টমাইজড সংস্করণ বা আচরণ বাস্তবায়ন করেন, তখন আপনার সেই কাস্টমাইজেশনগুলিকে ডেডিকেটেড ইউনিট পরীক্ষায় মিরর করা উচিত।