ক্যারিয়ার কনফিগারেশন

অ্যান্ড্রয়েড .0.০ এবং উচ্চতরটি প্ল্যাটফর্মে ক্যারিয়ার-নির্দিষ্ট কনফিগারেশন সরবরাহ করার জন্য সুবিধাযুক্ত অ্যাপ্লিকেশনগুলির সক্ষমতা অন্তর্ভুক্ত করে। অ্যান্ড্রয়েড 5.1 (ললিপপ এমআর 1) এ প্রবর্তিত ইউআইসিসি ক্যারিয়ার সুবিধাগুলির উপর ভিত্তি করে এই কার্যকারিতাটি ক্যারিয়ার কনফিগারেশনকে স্থির কনফিগারেশন ওভারলে থেকে সরিয়ে নিয়ে যাওয়ার অনুমতি দেয় এবং ক্যারিয়ার এবং ওএমকে একটি সংজ্ঞায়িত ইন্টারফেসের মাধ্যমে প্ল্যাটফর্মে গতিময়ভাবে ক্যারিয়ার কনফিগারেশন সরবরাহ করার ক্ষমতা দেয়।

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

  • রোমিং / ননরোমিং নেটওয়ার্কগুলি
  • ভিজ্যুয়াল ভয়েসমেইল
  • এসএমএস / এমএমএস নেটওয়ার্ক সেটিংস
  • VoLTE / IMS কনফিগারেশন tions

কী মানগুলি ফিরিয়ে আনবে তা নির্ধারণ সম্পূর্ণভাবে ক্যারিয়ার অ্যাপের উপর নির্ভর করে এবং প্ল্যাটফর্মের মাধ্যমে অ্যাপ্লিকেশনটিতে প্রেরিত বিশদ তথ্যের ভিত্তিতে গতিশীল হতে পারে।

এই পদ্ধতির মূল সুবিধাগুলি হ'ল:

  • ডায়নামিক কনফিগারেশন - নন-এমসিসিএমএনসি উত্পন্ন কনফিগারেশনের মত ধারণাগুলির জন্য সমর্থন, উদাহরণস্বরূপ, মোবাইল ভার্চুয়াল নেটওয়ার্ক অপারেটর (এমভিএনও) বা গ্রাহক অতিরিক্ত পরিষেবাদিতে বেছে নেবেন।
  • যে কোনও চ্যানেলের মাধ্যমে বিক্রি হওয়া ডিভাইসগুলির জন্য সমর্থন - উদাহরণস্বরূপ, একটি অ্যাপ স্টোর থেকে একটি অ্যাপ্লিকেশন ডাউনলোড করে একটি ওপেন মার্কেট ফোনটি স্বয়ংক্রিয়ভাবে সঠিক সেটিংসের সাথে কনফিগার করা যায়।
  • সুরক্ষা - এই কনফিগারেশনটি সরবরাহ করার অধিকার কেবলমাত্র ক্যারিয়ারের স্বাক্ষরিত অ্যাপগুলিতে দেওয়া হয়।
  • সংজ্ঞায়িত API - পূর্বে এই কনফিগারেশনটি বেশিরভাগ ফ্রেমওয়ার্কের মধ্যে অভ্যন্তরীণ XML ওভারলেগুলিতে সঞ্চিত ছিল এবং পাবলিক এপিআইয়ের মাধ্যমে নয়। অ্যান্ড্রয়েড .0.০ এ ক্যারিয়ার কনফিগারেশন API জনসাধারণ এবং ভালভাবে সংজ্ঞায়িত।

কিভাবে এটা কাজ করে

কনফিগার লোড হচ্ছে

এই বৈশিষ্ট্য দ্বারা সরবরাহিত ক্যারিয়ার কনফিগারেশন হ'ল কী-মান জোড়ার একটি সেট যা প্ল্যাটফর্মের বিভিন্ন টেলিফোনি-সম্পর্কিত আচরণকে পরিবর্তন করে।

একটি নির্দিষ্ট ডিভাইসের মানগুলির সেটটি নিম্নলিখিত উপাদানগুলিকে ক্রম করে জিজ্ঞাসা করে নির্ধারিত হয়:

  1. ক্যারিয়ার অ্যাপ্লিকেশন (এটি isচ্ছিক, তবে এটি অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্প (এওএসপি)) এর বাইরে বিদ্যমান অতিরিক্ত কনফিগারেশনের জন্য প্রস্তাবিত অবস্থান location
  2. প্ল্যাটফর্ম কনফিগারেশন অ্যাপ্লিকেশনটি সিস্টেম চিত্রের সাথে বান্ডিল হয়েছে
  3. ডিফল্ট মানগুলি, কাঠামোর মধ্যে হার্ডকোডযুক্ত (অ্যান্ড্রয়েড 6.0 এর পূর্বে আচরণের সমতুল্য)

প্ল্যাটফর্ম কনফিগারেশন অ্যাপ্লিকেশন

একটি জেনেরিক প্ল্যাটফর্ম কনফিগারেশন অ্যাপ্লিকেশনটি সিস্টেম চিত্রের সাথে বান্ডিল হয়েছে। এই অ্যাপ্লিকেশনটি নিয়মিত বাহক অ্যাপ্লিকেশনটি না করে এমন কোনও ভেরিয়েবলের মান সরবরাহ করতে পারে। প্ল্যাটফর্ম কনফিগারেশন অ্যাপটি (অ্যানড্রয়েড 6.0 এ) এর মধ্যে পাওয়া যাবে: packages/apps/CarrierConfig কনফিগ

এই অ্যাপ্লিকেশনটির উদ্দেশ্য হ'ল যখন কোনও ক্যারিয়ার অ্যাপ্লিকেশন ইনস্টল না করা থাকে তখন নেটওয়ার্ক প্রতি কিছু কনফিগারেশন সরবরাহ করা হয় এবং ক্যারিয়ার / ইএমএসকে নিজের ছবিতে এটিতে সর্বনিম্ন পরিবর্তন করা উচিত। পরিবর্তে ক্যারিয়ারকে ক্যারিয়ার কাস্টমাইজেশনের জন্য পৃথক ক্যারিয়ার অ্যাপ্লিকেশন সরবরাহ করা উচিত, অ্যাপ্লিকেশন স্টোরের মতো সুযোগগুলির মাধ্যমে আপডেটগুলি বিতরণ করা।

কোনও ক্যারিয়ার অ্যাপ্লিকেশনটিতে কীভাবে সুবিধা দেওয়া হয়

প্রশ্নযুক্ত ক্যারিয়ার অ্যাপ্লিকেশনটিকে সিম কার্ডে পাওয়া একই শংসাপত্রের সাথে সই করতে হবে, ইউআইসিসি ক্যারিয়ার প্রিভিলেজে নথিবদ্ধ হিসাবে।

ক্যারিয়ার অ্যাপে কী তথ্য পাঠানো হয়

ক্যারিয়ার অ্যাপ্লিকেশনটি নিম্নলিখিত মানগুলির সাথে সরবরাহ করা হয়, কী মানগুলি ফেরত দিতে পারে তার গতিশীল সিদ্ধান্ত নিতে সক্ষম করে:

  • এমসিসি
  • এমএনসি
  • এসপিএন
  • আইএমএসআই
  • জিআইডি 1
  • জিআইডি 2
  • ক্যারিয়ার আইডি

ক্যারিয়ার আইডি সংহত করার বিষয়ে আরও তথ্যের জন্য, ক্যারিয়ার কনফিগের সাথে ক্যারিয়ার আইডি সংহতকরণ দেখুন।

ক্যারিয়ার কনফিগার করার সময় লোড হয়

মূল মান জোড়ার তালিকার বিল্ডিং ঘটে:

  • সিমটি লোড হয়ে গেলে (বুট, বা সিমের হট অদলবদল)
  • যখন ক্যারিয়ার অ্যাপ্লিকেশন ম্যানুয়ালি একটি পুনরায় লোড ট্রিগার করে
  • যখন ক্যারিয়ার অ্যাপটি আপডেট হয় gets

আরও তথ্যের জন্য android.service.carrier.CarrierService#onLoadConfig() দেখুন।

কনফিগার ব্যবহার করে

কনফিগারেশনটি নির্মিত হলে, এর মধ্যে থাকা মানগুলি সিস্টেম কনফিগারেশনের বিভিন্ন মান সেট করতে ব্যবহৃত হয়:

  • অভ্যন্তরীণ কাঠামো টেলিফোনি সেটিংস
  • এসডিকে-ফেরত কনফিগারেশন মানগুলি, উদাহরণস্বরূপ, এসএমএস ম্যানেজারে
  • ডায়ালারে ভিভিএম সংযোগ মানগুলির মতো অ্যাপ্লিকেশন সেটিংস

কনফিগারেশন কী

কীগুলির তালিকাটি android.telephony.CarrierConfigManager এ পাবলিক এসডিকে অংশ হিসাবে সংজ্ঞায়িত করা হয়েছে এবং একই API স্তরের মধ্যে পরিবর্তন করতে পারে না। কীগুলির সংক্ষিপ্তসার জন্য নীচের সারণীটি দেখুন।

অ্যাপ তৈরি হচ্ছে

অ্যাপ তৈরি করা হচ্ছে

আপনার অ্যাপ্লিকেশন অবশ্যই অ্যান্ড্রয়েড 6.0 এপিআই স্তর (23) লক্ষ্যবস্তু করা উচিত।

এমন একটি শ্রেণীর ঘোষণা যা অ্যান্ড্রয়েড.সার্ভিস.করিয়ার.ক্যারিয়ার সার্ভিসকে ওভাররাইড করে

  1. ওভাররাইড onLoadConfig মান উপর ভিত্তি করে আপনি সরবরাহ করতে ইচ্ছুক ফিরে যাওয়ার service.carrier.CarrierIdentifier বস্তুর পাশ করে।
  2. ক্যারিয়ারের কনফিগারেশন সময়ের সাথে সাথে পরিবর্তিত হতে পারে এমন পরিস্থিতিতে (উদাহরণস্বরূপ, যখন ব্যবহারকারী তাদের অ্যাকাউন্টে অতিরিক্ত পরিষেবাদি যুক্ত করেন) notifyConfigChangedForSubId যুক্তি যুক্ত করুন।

একটি উদাহরণ নীচে:

public class SampleCarrierConfigService extends CarrierService {

    private static final String TAG = "SampleCarrierConfigService";

    public SampleCarrierConfigService() {
        Log.d(TAG, "Service created");
    }

    @Override
    public PersistableBundle onLoadConfig(CarrierIdentifier id) {
        Log.d(TAG, "Config being fetched");
        PersistableBundle config = new PersistableBundle();
        config.putBoolean(
            CarrierConfigManager.KEY_CARRIER_VOLTE_AVAILABLE_BOOL, true);
        config.putBoolean(
            CarrierConfigManager.KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL, false);
        config.putInt(CarrierConfigManager.KEY_VOLTE_REPLACEMENT_RAT_INT, 6);
        // Check CarrierIdentifier and add more config if needed…
        return config;
    }
}

আরও তথ্যের জন্য, android.service.carrier.CarrierService উল্লেখ দেখুন।

ম্যানিফেস্টে ক্লাসের নামকরণ

একটি উদাহরণ নীচে:

<service android:name=".SampleCarrierConfigService"
android:label="@string/service_name"
android:permission="android.permission.BIND_CARRIER_SERVICES">
      <intent-filter>
      <action android:name="android.service.carrier.CarrierService"/></intent-filter>
</service>

সিমটিতে একই শংসাপত্রের সাথে অ্যাপ্লিকেশনটিতে সাইন করা

প্রয়োজনীয়তাগুলির জন্য ইউআইসিসি ক্যারিয়ার অধিকারগুলি দেখুন।

ক্যারিয়ার অ্যাপের সাথে এপিএন যুক্ত করা হচ্ছে

একটি ক্যারিয়ার অ্যাপ্লিকেশন থেকে এপিএন প্রোগ্রামগতভাবে যুক্ত করতে (উদাহরণস্বরূপ, সিম অ্যাক্টিভেশন চলাকালীন), ইউআরআই android.provider.Telephony.Carriers.CONTENT_URI দ্বারা চিহ্নিত কোনও সামগ্রী সরবরাহকারীতে APN আইটেম যুক্ত করতে কন্টেন্ট ContentResolver API গুলি ব্যবহার করুন। বিষয়বস্তু কোনো URI জন্য টেবিল কাঠামো সম্পর্কে আরো তথ্যের জন্য, দেখুন Telephony.Carriers

আরও তথ্যের জন্য, এপিএন এবং ক্যারিয়ার কনফিগ দেখুন

অ্যাপটি পরীক্ষা করা হচ্ছে

আপনি যখন আপনার কনফিগারেশন অ্যাপ্লিকেশনটি তৈরি করেছেন, আপনি নিজের কোডটি এখানে পরীক্ষা করতে পারেন:

  • একটি বৈধ শংসাপত্রের স্বাক্ষরযুক্ত সিম
  • অ্যান্ড্রয়েড 6.0 এবং তারপরে চালিত একটি ডিভাইস, উদাহরণস্বরূপ একটি অ্যান্ড্রয়েড ডিভাইস