27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
ডেটা প্ল্যান বাস্তবায়ন করুন
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
অ্যান্ড্রয়েড 9 ব্যবহারকারীদের বিভ্রান্তি কমাতে এবং কল সমর্থন করতে ব্যবহারকারীদের সেটিংস অ্যাপে ব্যবহারকারীদের সরাসরি প্রামাণিক পরিকল্পনার বিশদ সরবরাহ করতে দেয়। অ্যান্ড্রয়েড 4.0 এবং উচ্চতর সংস্করণে চলমান ডিভাইসগুলিতে, ব্যবহারকারীরা সেটিংস অ্যাপে তাদের ক্যারিয়ার-নির্দিষ্ট ডেটা প্ল্যানের বিশদ বিবরণ ম্যানুয়ালি কনফিগার করতে সক্ষম হয়, উদাহরণস্বরূপ, তাদের ডেটা ব্যবহার পরিচালনা করার জন্য সতর্কতা এবং সীমা সেট করা।
ক্যারিয়ার দ্বারা কনফিগারেশন
ডেটা প্ল্যান কনফিগার করতে, ক্যারিয়াররা SubscriptionPlan
API ব্যবহার করে তাদের বিদ্যমান Android অ্যাপে কার্যকারিতা যোগ করতে পারে। এপিআইগুলি পুনরাবৃত্ত এবং অ-পুনরাবৃত্ত প্ল্যান এবং সময়ের সাথে পরিবর্তিত প্ল্যানগুলি সহ বিস্তৃত ডেটা প্ল্যান প্রকারগুলিকে সমর্থন করার জন্য ডিজাইন করা হয়েছে।
এখানে একটি সাধারণ ধরণের ডেটা প্ল্যান কনফিগার করার একটি উদাহরণ রয়েছে যা মাসিক পুনরাবৃত্তি হয়:
SubscriptionManager sm =
context.getSystemService(SubscriptionManager.class);
sm.setSubscriptionPlans(subId, Lists.newArrayList(
SubscriptionPlan.Builder.createRecurringMonthly(
ZonedDateTime.parse("2016-12-03T10:00:00Z"))
.setTitle("G-Mobile")
.setDataLimit(4_000_000_000L,
SubscriptionPlan.LIMIT_BEHAVIOR_BILLED)
.setDataUsage(200_493_293L, dataUsageTimestamp)
.build()));
ডিভাইসটি শুধুমাত্র একটি অ্যাপকে এই শর্তগুলির মধ্যে একটির অধীনে ডেটা প্ল্যান কনফিগার করতে দেয়:
- SIM কার্ড স্পষ্টভাবে একটি অ্যাপকে সংজ্ঞায়িত করেছে যা এটি পরিচালনা করতে পারে, যেমন
SubscriptionManager.canManageSubscription()
দ্বারা সংজ্ঞায়িত করা হয়েছে। - কোন অ্যাপ ক্যারিয়ারের ডেটা প্ল্যানগুলি পরিচালনা করতে পারে তা নির্দেশ করতে ক্যারিয়ারটি
CarrierConfigManager
মাধ্যমে KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING
মানটি পুশ করেছে৷ - ডিভাইসটিতে সিস্টেম ইমেজে অন্তর্নির্মিত একটি অ্যাপ রয়েছে যার
MANAGE_SUBSCRIPTION_PLANS
অনুমতি রয়েছে৷
প্রথম দুটি শর্ত কারখানার সিস্টেম ইমেজে আগে থেকে ইনস্টল করা প্রয়োজন ছাড়া ক্যারিয়ার অ্যাপটিকে ব্যবহারকারী দ্বারা ইনস্টল করতে সক্ষম করে৷ OS প্রয়োগ করে (এবং CDD এর প্রয়োজন হয়) যে সমস্ত কনফিগার করা ডেটা প্ল্যানের বিশদগুলি সুরক্ষিত থাকে এবং শুধুমাত্র সেই ক্যারিয়ার অ্যাপের কাছে উপলব্ধ করা হয় যা মূলত OS কে বিশদ প্রদান করে।
একটি প্রস্তাবিত নকশা হল একটি ক্যারিয়ার অ্যাপের জন্য একটি নিষ্ক্রিয় রক্ষণাবেক্ষণ পরিষেবা ব্যবহার করে প্রতিদিন ডেটা প্ল্যানের বিশদ আপডেট করার জন্য, তবে ক্যারিয়ারগুলি ক্যারিয়ার-অভ্যন্তরীণ এসএমএস বার্তাগুলির মাধ্যমে ডেটা প্ল্যানের বিশদ প্রাপ্তির মতো বিস্তৃত পরিসরের প্রক্রিয়া ব্যবহার করার জন্য বিনামূল্যে। নিষ্ক্রিয় রক্ষণাবেক্ষণ পরিষেবাগুলি একটি JobScheduler
কাজের সাথে সর্বোত্তমভাবে প্রয়োগ করা হয় যা setRequiresDeviceIdle()
এবং setRequiresCharging()
ব্যবহার করে।
OS দ্বারা ব্যবহার
OS নিম্নলিখিত উপায়ে সাবস্ক্রিপশনপ্ল্যান এপিআই দ্বারা প্রদত্ত ডেটা প্ল্যানের বিবরণ ব্যবহার করে:
- ব্যবহারকারীদের সঠিক ডেটা ব্যবহার প্রদর্শন করতে এবং আপগ্রেড/আপসেল সুযোগের জন্য ক্যারিয়ার অ্যাপে সরাসরি গভীর লিঙ্ক সরবরাহ করতে সেটিংস অ্যাপের মাধ্যমে পরিকল্পনার বিশদ প্রকাশ করা হয়।
- ডেটা ব্যবহারের সতর্কতা এবং সীমা বিজ্ঞপ্তি থ্রেশহোল্ডগুলি পরিকল্পনার বিবরণের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে কনফিগার করা হয়; সতর্কতা সীমার 90% সেট করা হয়েছে।
- যদি ক্যারিয়ার অস্থায়ীভাবে নেটওয়ার্কটি "জড়িত" বলে ইঙ্গিত করে, তাহলে OS JobScheduler কাজগুলিকে বিলম্বিত করে যা সময়-বদল করা যেতে পারে, ক্যারিয়ার নেটওয়ার্কের লোড কমিয়ে দেয়৷
- যদি ক্যারিয়ার অস্থায়ীভাবে নেটওয়ার্কটিকে "আনমিটারড" বলে ইঙ্গিত করে, OS সেলুলার সংযোগটিকে "আনমিটারড" হিসাবে রিপোর্ট করতে পারে যতক্ষণ না ক্যারিয়ার ওভাররাইডটি পরিষ্কার করে, বা টাইমআউট মান (যদি সরবরাহ করা হয়) না পৌঁছানো হয়।
- সামগ্রিক ডেটা সীমার সাথে ব্যবহারকারীর বর্তমান ডেটা ব্যবহারের তুলনা করে, OS বিলিং চক্রের শেষে ব্যবহারকারীর স্বাভাবিক ডেটা ব্যবহার অনুমান করে এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে রক্ষণশীলভাবে 10% অতিরিক্ত ডেটা বরাদ্দ করে, উদাহরণস্বরূপ, অ্যাপগুলিকে বহু-পাথ ডেটা ব্যবহার করতে দিয়ে৷
কাস্টমাইজেশন এবং বৈধতা
অ্যান্ড্রয়েড সেটিংস অ্যাপটি সমস্ত ক্যারিয়ার-কনফিগার করা ডেটা প্ল্যানের বিবরণ প্রদর্শন করে, ব্যবহারকারীরা তাদের ক্যারিয়ার সম্পর্কের সবচেয়ে সঠিক স্থিতি দেখতে পান এবং ব্যবহারকারীদের তাদের প্ল্যান আপগ্রেড করার জন্য ক্যারিয়ার অ্যাপে একটি পথ অফার করে তা নিশ্চিত করে। ডিভাইস নির্মাতারা যারা সেটিংস অ্যাপ কাস্টমাইজ করতে বেছে নিচ্ছেন তাদের এই বিবরণগুলি সার্ফেস করা চালিয়ে যাওয়ার পরামর্শ দেওয়া হচ্ছে।
এই পৃষ্ঠায় বর্ণিত SubscriptionManager
APIগুলি android.telephony.cts.SubscriptionManagerTest
দ্বারা পরীক্ষা করা হয়, যা নিশ্চিত করে যে ডেটা প্ল্যানের বিশদগুলি ক্যারিয়ার অ্যাপগুলি দ্বারা কনফিগার করা যেতে পারে এবং পরিবর্তনগুলি OS-এর মধ্যে প্রচারিত হয়৷
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি 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,["# Implement data plans\n\nAndroid 9 lets carriers directly provide authoritative\nplan details to users in the Settings app to reduce user confusion and support\ncalls. On devices running Android 4.0 and higher, users are able to manually\nconfigure their carrier-specific data plan details in the Settings app, for\nexample, setting warnings and limits to manage their data usage.\n\nConfiguration by carrier\n------------------------\n\nTo configure data plans, carriers can add functionality to their existing\nAndroid apps using the\n[`SubscriptionPlan` APIs](https://developer.android.com/reference/android/telephony/SubscriptionPlan.Builder).\nThe APIs are designed to support a wide range of data plan types, including both\nrecurring and non-recurring plans, and plans that change over time.\n\nHere's an example of how to configure a common type of data plan that recurs\nmonthly: \n\n SubscriptionManager sm =\n context.getSystemService(SubscriptionManager.class);\n sm.setSubscriptionPlans(subId, Lists.newArrayList(\n SubscriptionPlan.Builder.createRecurringMonthly(\n ZonedDateTime.parse(\"2016-12-03T10:00:00Z\"))\n .setTitle(\"G-Mobile\")\n .setDataLimit(4_000_000_000L,\n SubscriptionPlan.LIMIT_BEHAVIOR_BILLED)\n .setDataUsage(200_493_293L, dataUsageTimestamp)\n .build()));\n\nThe device only lets an app configure data plans under one of these conditions:\n\n- The SIM card has explicitly defined an app that can manage it, as defined by [`SubscriptionManager.canManageSubscription()`](https://developer.android.com/reference/android/telephony/SubscriptionManager.html#canManageSubscription(android.telephony.SubscriptionInfo)).\n- The carrier has pushed the [`KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING`](https://developer.android.com/reference/android/telephony/CarrierConfigManager#KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING) value via `CarrierConfigManager` to indicate which app can manage the carrier's data plans.\n- The device has an app built into the system image that has the `MANAGE_SUBSCRIPTION_PLANS` permission.\n\nThe first two conditions enable the carrier app to be installed by the user,\nwithout requiring that it be pre-installed into the system image at the factory.\nThe OS enforces (and the CDD requires) that all configured data plan details are\nprotected and are only made available to the carrier app that originally\nprovided the details to the OS.\n\nOne suggested design is for a carrier app to use an idle maintenance service to\nupdate data plan details on a daily basis, but carriers are free to use a wide\nrange of mechanisms, such as receiving data plan details through carrier-internal\nSMS messages. Idle maintenance services are best implemented with a\n`JobScheduler` job that uses\n[`setRequiresDeviceIdle()`](https://developer.android.com/reference/android/app/job/JobInfo.Builder#setRequiresDeviceIdle(boolean))\nand\n[`setRequiresCharging()`](https://developer.android.com/reference/android/app/job/JobInfo.Builder.html#setRequiresCharging(boolean)).\n\nUsage by OS\n-----------\n\nThe OS uses the data plan details provided by the SubscriptionPlan APIs in the\nfollowing ways:\n\n- The plan details are surfaced via the Settings app to display accurate data usage to users and to provide [direct deep links into the carrier app](https://developer.android.com/reference/android/telephony/SubscriptionManager.html#ACTION_MANAGE_SUBSCRIPTION_PLANS) for upgrade/upsell opportunities.\n- The data usage warning and limit notification thresholds are automatically configured based on the plan details; the warning is set to 90% of the limit.\n- If the carrier temporarily indicates the network is [\"congested\"](https://developer.android.com/reference/android/telephony/SubscriptionManager.html#setSubscriptionOverrideCongested(int,%20boolean,%20long)), the OS delays JobScheduler jobs that can be time-shifted, reducing the load on the carrier network.\n- If the carrier temporarily indicates the network is [\"unmetered\"](https://developer.android.com/reference/android/telephony/SubscriptionManager#setSubscriptionOverrideUnmetered(int,%20boolean,%20long)), the OS can report the cellular connection as \"unmetered\" until the carrier clears the override, or until the timeout value (if provided) is reached.\n- By comparing the user's current data usage with the overall data limit, the OS estimates the user's normal data usage at the end of the billing cycle and conservatively allocates 10% of any surplus data to improve the user experience, for example, by letting apps use multi-path data.\n\nCustomization and validation\n----------------------------\n\nThe Android Settings app displays all carrier-configured data plan details,\nensuring that users see the most accurate status of their carrier relationship,\nand offering users a path into the carrier app to upgrade their plan. Device\nmanufacturers choosing to customize the Settings app are recommended to continue\nsurfacing these details.\n\nThe `SubscriptionManager` APIs described on this page are tested by\n`android.telephony.cts.SubscriptionManagerTest`, which ensures that data plan\ndetails can be configured by carrier apps and that changes are propagated within\nthe OS."]]