OEM এবং যানবাহন মালিক উভয়ের অনুরোধে ক্রমবর্ধমান ব্যবহারের তালিকা পরিচালনা করার জন্য যানবাহনগুলি ক্রমবর্ধমানভাবে সংযোগের উপর নির্ভর করে, যার ফলে ডেটা ফুটপ্রিন্ট এবং সংশ্লিষ্ট খরচ বৃদ্ধি পায়। OEM দ্বারা অর্থপ্রদান করা নেটওয়ার্কগুলিতে নির্দিষ্ট অ্যাপগুলির ট্র্যাফিক রুট করতে প্রতি-অ্যাপ্লিকেশন নেটওয়ার্ক নির্বাচন (PANS) বৈশিষ্ট্যটি ব্যবহার করুন।
PANS এর মাধ্যমে, আপনি ডেটা ব্যবহারের পরিমাণ এবং খরচ পরিচালনা করতে পারবেন এবং একই সাথে একটি শক্তিশালী, নিরাপদ এবং সংযুক্ত গাড়ির অভিজ্ঞতা প্রদান করতে পারবেন। PANS:
-
ConnectivityManagerযোগ করা একটি নতুন API রয়েছে যা শুধুমাত্র অটোমোটিভ ডিভাইসের জন্য উপলব্ধ। - PANS নেটওয়ার্ক ক্ষমতা পরিবর্তনের জন্য সমর্থন অন্তর্ভুক্ত করার জন্য একটি আপডেট করা Wi-Fi পরামর্শ API ( ইন্টারনেট সংযোগের জন্য Wi-Fi পরামর্শ API দেখুন) প্রদান করে।
- সহায়ক মেট্রিক্স সংগ্রহ করে।
- একটি রেফারেন্স অ্যাপ প্রদান করে।
প্যান কেন?
প্যানগুলি করতে পারে:
- অ্যাপ-টু-নেটওয়ার্ক ম্যাপিংগুলিকে গতিশীলভাবে আপডেট করুন।
- অ্যাপে পরিবর্তন না করেই অ্যাপ-লেভেল রাউটিং পরিচালনা করুন।
- শুধুমাত্র OEM-অনুমোদিত অ্যাপগুলি ম্যাপ করা OEM নেটওয়ার্কগুলি অ্যাক্সেস করতে পারবে।
- এই বৈশিষ্ট্যটি বাস্তবায়নের জন্য অ্যাপ ডেভেলপারদের কোনও পরিবর্তন করার প্রয়োজন নেই।
- ব্যবহারকারী-মুখী মেট্রিক্স OEM পরিচালিত নেটওয়ার্কগুলির জন্য অ্যাপ-টু-নেটওয়ার্ক ডেটা ব্যবহার ট্র্যাক করে।
- নেটওয়ার্ক অ্যাক্সেস নিরাপদ এবং অনিচ্ছাকৃত ব্যবহারের ক্ষেত্রে বা অননুমোদিত অ্যাপের মাধ্যমে এর অপব্যবহার করা যাবে না।
- PANS অ্যাপ-টু-নেটওয়ার্ক ম্যাপিংয়ের পরিবর্তনগুলি ব্যবহারকারীদের জানানো হয়।
- সকল ব্যবহারকারীর ক্ষেত্রে একই নেটওয়ার্ক কনফিগারেশন প্রয়োগ করা হয়।
মূল সুবিধা
PANS OEMS-কে এই মূল সুবিধাগুলি প্রদান করে:
- ব্যবহারকারীদের পরিবর্তে OEM গুলি নেটওয়ার্ক ট্র্যাফিকের জন্য অর্থ প্রদান করতে পারে:
- ব্যবহারকারীকে বিনামূল্যে সিস্টেম আপডেট প্রদান করা যেতে পারে।
- নির্দিষ্ট অ্যাপগুলির নেটওয়ার্ক ব্যবহার ব্যবহারকারীকে বিনামূল্যে প্রদান করা যেতে পারে।
- টেলিমেট্রি এবং অন্যান্য বিশ্লেষণ ব্যবহারকারীর বিনামূল্যে পরিচালনা করা যেতে পারে।
- OEM গুলি নিশ্চিত করতে পারে যে ব্যবহারকারী-প্রদত্ত ডেটা প্ল্যান ছাড়াই গুরুত্বপূর্ণ অ্যাপগুলি সংযুক্ত থাকে। উদাহরণস্বরূপ, ব্যবহারকারীর কোনও ডেটা প্ল্যান না থাকলেও মানচিত্র, সহকারী (হ্যান্ডস-ফ্রি ড্রাইভিং) এবং সিস্টেম আপডেটের মতো নিরাপত্তা-গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি কাজ করতে থাকে।
- PANS অ্যান্ড্রয়েডে নেটওয়ার্ক ট্র্যাফিক রাউটিংয়ের জন্য নির্দিষ্ট নিয়ন্ত্রণের অতিরিক্ত গ্র্যানুলারিটি প্রদান করে। উদাহরণস্বরূপ, OEM গুলি অ্যাপ-স্তরের ট্র্যাফিক রাউটিংয়ের জন্য একটি লজিক্যাল নেটওয়ার্ক টপোলজি সর্বোত্তমভাবে সংজ্ঞায়িত করতে পারে।
PANS বাস্তবায়ন করুন
PANS বাস্তবায়নের জন্য, একটি নতুন ConnectivityManager API, setOemNetworkPreference , প্রদান করা হয়েছে। এই নতুন API অ্যাপগুলিকে একটি OemNetworkPreference এর সাথে ম্যাপ করে। এই API শুধুমাত্র অটোমোটিভ ডিভাইসের জন্য উপলব্ধ এবং একটি নতুন signature অনুমতি সহ @SystemApi হিসাবে টীকাযুক্ত।
OemNetworkPreference সম্পর্কে
OemNetworkPreference হল OEM_PAID এবং OEM_PRIVATE NetworkCapabilities উপর একটি বিমূর্তকরণ যা প্যাকেজের নাম অনুসারে একটি নেটওয়ার্ক পছন্দের সাথে অ্যাপ ম্যাপ করে। নেটওয়ার্ক পছন্দগুলি নেটওয়ার্ক শ্রেণীবিন্যাসের জন্য অনুমতি দেয়। উদাহরণস্বরূপ, OEM_NETWORK_PREFERENCE_OEM_PAID পছন্দের সাথে একটি অ্যাপ ম্যাপ করার ফলে একটি অ্যাপকে নির্ধারিত ডিফল্ট নেটওয়ার্কগুলির নিম্নলিখিত অগ্রাধিকার পাওয়া যায়: প্রথমে একটি UNMETERED নেটওয়ার্ক ব্যবহার করুন, যদি UNMETERED উপলব্ধ না থাকে তবে একটি OEM_PAID নেটওয়ার্ক ব্যবহার করুন, এবং যদি OEM_PAID উপলব্ধ না থাকে তবে সিস্টেম ডিফল্ট নেটওয়ার্ক ব্যবহার করুন।
-
OEM_PAIDমূলত এমন অ্যাপগুলির জন্য ব্যবহৃত হয় যা OEM এবং নন-OEM উভয় নেটওয়ার্কেই রাউট করা যায়। -
OEM_PRIVATEমূলত OEM অ্যাপগুলির জন্য ব্যবহৃত হয় যাতে তাদের জন্য নিবেদিত নেটওয়ার্কে অ্যাক্সেস পাওয়া যায়।
/** * If an unmetered network is available, use it. * Otherwise, if a network with the OEM_PAID capability is available, use it. * Otherwise, use the general default network. */ public static final int OEM_NETWORK_PREFERENCE_OEM_PAID = 1; /** * If an unmetered network is available, use it. * Otherwise, if a network with the OEM_PAID capability is available, use it. * Otherwise, the app doesn't get a default network. */ public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_NO_FALLBACK = 2; /** * Use only NET_CAPABILITY_OEM_PAID networks. */ public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_ONLY = 3; /** * Use only NET_CAPABILITY_OEM_PRIVATE networks. */ public static final int OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY = 4;
PANS API গুলিতে কল করুন
PANS API ব্যবহার করতে:
- একটি অ্যাপকে নেটওয়ার্ক পছন্দের সাথে ম্যাপ করতে
OemNetworkPreferencesব্যবহার করুন। -
OemNetworkPreferencesঅবজেক্ট ব্যবহার করেsetOemNetworkPreferenceকল করুন। - API সমাপ্তির জন্য শুনতে
Runnableইন্টারফেস ব্যবহার করুন।
উদাহরণস্বরূপ:
// Mapping three packages to two network preferences // Packages have a 1:1 mapping to network preferences OemNetworkPreferences pref = new OemNetworkPreferences.Builder() .addNetworkPreference("first.package.name", OEM_NETWORK_PREFERENCE_OEM_PAID) .addNetworkPreference("second.package.name", OEM_NETWORK_PREFERENCE_OEM_PAID) .addNetworkPreference("third.package.name", OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY) .build(); myConnectivityManager.setOemNetworkPreference(pref, myExecutor, myListener);
বিবেচনা
PANS বাস্তবায়নের সময়, নিম্নলিখিত বিষয়গুলি মনে রাখবেন:
- বুট জুড়ে নেটওয়ার্ক পছন্দগুলি স্থায়ী হয় না এবং প্রতিটি বুটে পুনরায় প্রয়োগ করতে হয়।
- কোনও অ্যাপের জন্য পছন্দ তৈরি করতে, এটি ইনস্টল করার প্রয়োজন হয় না। অতএব, আনইনস্টল করা অ্যাপগুলির জন্য নেটওয়ার্ক পছন্দগুলি সক্রিয়ভাবে সেট করা যেতে পারে।
- যেকোনো সময়ে, একটি অ্যাপ শুধুমাত্র একটি একক নেটওয়ার্ক পছন্দের সাথে ম্যাপ করা যেতে পারে।
- কোনও অ্যাপের ডিফল্ট নেটওয়ার্ক সেট করতে নেটওয়ার্ক পছন্দ ব্যবহার করা হয়। এটি এমন নেটওয়ার্ক যা কোনও অ্যাপ নির্দিষ্ট করে না যে তারা কোন বিশেষায়িত API-এর মাধ্যমে কোন নেটওয়ার্ক(গুলি) ব্যবহার করতে চায়। এটি কেবল সংযোগের চাহিদার বিশাল অংশই পূরণ করে না, এটি
NetworkRequestAPI-এর মতো বিশেষায়িত API-এর ক্রমাগত ব্যবহারের অনুমতি দেয় যাতে বিদ্যমান অ্যাপ ব্যবহারের ক্ষেত্রে কোনও সমস্যা না হয়। উদাহরণস্বরূপ, যখন কোনও অ্যাপ কেবল একটি অ-মিটারযুক্ত নেটওয়ার্কের মাধ্যমে কোনও অপারেশন করতে চায়, তখন PANS এটিকে অন্য নেটওয়ার্ক ব্যবহার করতে বাধ্য করবে না।
একটি নেটওয়ার্ক কনফিগার করুন
সংশ্লিষ্ট নেটওয়ার্ক পছন্দ ব্যবহার করার সময় OEM_PAID অথবা OEM_PRIVATE ক্ষমতা সম্পন্ন একটি নেটওয়ার্ক উপলব্ধ থাকতে হবে। Android ইথারনেট এবং ওয়াই-ফাই নেটওয়ার্কের জন্য ক্ষমতার কনফিগারেশনের জন্য সহায়তা প্রদান করে। ইথারনেট নেটওয়ার্কের জন্য, আপনি একটি রিসোর্স ওভারলে, config_ethernet_interfaces ব্যবহার করতে পারেন। এটি কম্পাইলের সময় সেট করা হয়।
Wi-Fi এর জন্য, WifiNetworkSuggestion API নতুন Android 12 API, setOemPaid(Boolean) এবং setOemPrivate(Boolean) এর সাথে ব্যবহার করা যেতে পারে। এটি রানটাইমে পরিবর্তন করা যেতে পারে।
এই উদাহরণগুলি বিবেচনা করুন:
-
config_ethernet_interfacesনামের একটি রিসোর্স ওভারলে উল্লেখ করে:- কনফিগার করার জন্য ইন্টারফেসের নাম।
- কাঙ্ক্ষিত
NetworkCapabilitiesমান।<!-- 11 NET_CAPABILITY_NOT_METERED 12 NET_CAPABILITY_INTERNET 14 NET_CAPABILITY_TRUSTED 15 NET_CAPABILITY_NOT_VPN 22 NET_CAPABILITY_OEM_PAID || 26 NET_CAPABILITY_OEM_PRIVATE --> <string-array translatable="false" name="config_ethernet_interfaces"> <item>eth0;11,12,14,15,22;;</item></string-array>
- এই
WiFiNetworkSuggestionগতিশীলভাবে পরিবর্তন করা যেতে পারে:ArrayList<WifiNetworkSuggestion> list = new ArrayList<>(); list.add(new WifiNetworkSuggestion.Builder() .setSsid(WifiInfo.sanitizeSsid(ssid)) .setOemPrivate(true) .build()); mWifiManager.addNetworkSuggestions(list);
PANS নেটওয়ার্কগুলিতে অ্যাক্সেস সীমাবদ্ধ করুন
OEM_PAID অথবা OEM_PRIVATE ক্ষমতা সম্পন্ন নেটওয়ার্ক ট্যাগ করলে সেই নেটওয়ার্কটিকে একটি সীমাবদ্ধ নেটওয়ার্ক হিসেবে চিহ্নিত করা হয়। সীমাবদ্ধ নেটওয়ার্কগুলি কেবলমাত্র সেই অ্যাপগুলি ব্যবহার করতে পারে যাদের CONNECTIVITY_USE_RESTRICTED_NETWORKS অনুমতি রয়েছে, যা OEM দ্বারা নিয়ন্ত্রিত।
এই অনুমতিপ্রাপ্ত অ্যাপগুলি সীমাবদ্ধ নেটওয়ার্ক ব্যবহার করতে পারবে যদি অ্যাপগুলি স্পষ্টভাবে অনুরোধ করে । তবে, এই অ্যাপগুলি তাদের ডিফল্ট হিসাবে সীমাবদ্ধ নেটওয়ার্ক পাবে না। PANS এর মাধ্যমে ম্যাপ করা অ্যাপগুলিতে সীমাবদ্ধ OEM নেটওয়ার্কগুলি তাদের ডিফল্ট হিসাবে সেট করা থাকতে পারে এবং সেগুলি ব্যবহারের জন্য সীমাবদ্ধ নেটওয়ার্ক অনুমতির প্রয়োজন হয় না। যখন এই ধরনের একটি অ্যাপকে PANS দ্বারা একটি সীমাবদ্ধ OEM নেটওয়ার্ক ডিফল্ট নেটওয়ার্ক হিসাবে নির্ধারিত করা হয়, তখন অ্যাপটি যদি তা করতে চায় তবে এটি স্পষ্টভাবে OEM নেটওয়ার্ক অনুরোধ করার ক্ষমতাও রাখে।
রেফারেন্স অ্যাপটি পর্যালোচনা করুন
ব্যবহারকারী-ডিবাগ অটোমোটিভ বিল্ডগুলিতে NetworkPreferenceApp নামে একটি রেফারেন্স অ্যাপ (কোড সহ) সরবরাহ করা হয়েছে এবং এটি কীভাবে করবেন তা প্রদর্শন করে:
- PANS মেট্রিক্স ব্যবহার করুন।
- PANS নীতি সেট করুন।
- ডিভাইসের জন্য একটি ডিফল্ট নীতি সেট করুন।
- একটি নীতি পরিষ্কার করুন।
- বুটে একটি নীতি প্রয়োগ করুন।
- ড্রাইভার ডিস্ট্রাকশন API ব্যবহার করুন ( ড্রাইভার ডিস্ট্রাকশন নির্দেশিকা দেখুন)।
-
OEM_PAIDএবংOEM_PRIVATEদিয়ে ওয়াই-ফাই গতিশীলভাবে আপডেট করুন।
মেট্রিক্স
ডেটা ব্যবহারের স্বচ্ছতা নিশ্চিত করার জন্য, OEM_PAID এবং OEM_PRIVATE নেটওয়ার্ক ম্যাপিংয়ের মাধ্যমে প্রেরিত ডেটার পরিমাণ সম্পর্কিত মেট্রিক্স সংগ্রহ করা হয় এবং উপলব্ধ করা হয়।
সমস্যা সমাধান
বেশিরভাগ সমস্যা সমাধানের সমস্যা হয় কোনও অ্যাপ ভুল নেটওয়ার্ক ব্যবহার করে (নেটওয়ার্ক সংযোগ নেই) অথবা ডেটা ওভারেজ ব্যবহার করে। দ্রুত সমাধান সক্ষম করতে:
- কানেক্টিভিটি
dumpsysপ্রতি-অ্যাপের জন্য সক্রিয় ডিফল্ট নেটওয়ার্ক এবং তাদের সংশ্লিষ্ট অ্যাপগুলির একটি তালিকা রয়েছে (PANS থেকে ম্যাপ করা)। - Netd
dumpsysUID IP এবং ফায়ারওয়াল নিয়ম অন্তর্ভুক্ত রয়েছে। - Netstats
dumpsysপ্রতি-অ্যাপের জন্য PANS মেট্রিক্স অন্তর্ভুক্ত থাকে। উদাহরণস্বরূপ, কোন অ্যাপগুলি কোন OEM নেটওয়ার্ক ব্যবহার করেছে।
একটি অ্যান্ড্রয়েড বাগ রিপোর্ট তৈরি করে সমস্ত dumpsys ডেটা পাওয়া যায়।