Android 10-এ গোপনীয়তার পরিবর্তন

অ্যান্ড্রয়েড ১০ (এপিআই লেভেল ২৯) ব্যবহারকারীদের গোপনীয়তা আরও ভালোভাবে সুরক্ষিত করার জন্য বেশ কিছু ফিচার এবং আচরণগত পরিবর্তন নিয়ে এসেছে। এই পরিবর্তনগুলো ব্যবহারকারীদের নিজেদের ডেটা এবং অ্যাপগুলোকে দেওয়া ক্ষমতার উপর তাদের স্বচ্ছতা ও নিয়ন্ত্রণকে আরও বাড়িয়ে দেয়। এই ফিচারগুলোর কারণে, আপনার অ্যাপ যে নির্দিষ্ট আচরণ বা ডেটার উপর নির্ভর করছে, তা প্ল্যাটফর্মের পুরোনো সংস্করণগুলোর তুলনায় ভিন্নভাবে কাজ করতে পারে। আপনার অ্যাপ যদি ব্যবহারকারীর ডেটা পরিচালনার জন্য বর্তমান সেরা পদ্ধতিগুলো অনুসরণ করে, তবে এর প্রভাব ন্যূনতম হবে।

এই পৃষ্ঠায় প্রতিটি পরিবর্তনের একটি সারসংক্ষেপ তালিকাভুক্ত করা হয়েছে।

শীর্ষ পরিবর্তন

এই অংশে অ্যান্ড্রয়েড ১০-এর গোপনীয়তা-সম্পর্কিত প্রধান পরিবর্তনগুলো তুলে ধরা হয়েছে।

অ্যাপ ফাইল এবং মিডিয়ার জন্য বাহ্যিক স্টোরেজ অ্যাক্সেস সীমাবদ্ধ।

ডিফল্টরূপে, অ্যান্ড্রয়েড ১০ এবং তার পরবর্তী সংস্করণকে লক্ষ্য করে তৈরি অ্যাপগুলোকে এক্সটার্নাল স্টোরেজে স্কোপড অ্যাক্সেস বা স্কোপড স্টোরেজ দেওয়া হয়। এই ধরনের অ্যাপগুলো স্টোরেজ-সম্পর্কিত কোনো ব্যবহারকারী অনুমতির অনুরোধ না করেই একটি এক্সটার্নাল স্টোরেজ ডিভাইসের মধ্যে নিম্নলিখিত ধরনের ফাইলগুলো দেখতে পারে:

  • অ্যাপ-নির্দিষ্ট ডিরেক্টরিতে থাকা ফাইলগুলো, যা getExternalFilesDir() ব্যবহার করে অ্যাক্সেস করা হয়।
  • অ্যাপটি মিডিয়া স্টোর থেকে যে ছবি, ভিডিও এবং অডিও ক্লিপগুলো তৈরি করেছে।

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

ব্যাকগ্রাউন্ডে ডিভাইসের অবস্থান অ্যাক্সেস করার জন্য অনুমতির প্রয়োজন।

অ্যাপের লোকেশন তথ্যে অ্যাক্সেসের উপর ব্যবহারকারীদের যে অতিরিক্ত নিয়ন্ত্রণ থাকে, তা সমর্থন করার জন্য অ্যান্ড্রয়েড ১০ ACCESS_BACKGROUND_LOCATION পারমিশনটি চালু করেছে।

ACCESS_FINE_LOCATION এবং ACCESS_COARSE_LOCATION পারমিশনগুলোর থেকে ভিন্ন, ACCESS_BACKGROUND_LOCATION পারমিশনটি শুধুমাত্র ব্যাকগ্রাউন্ডে চলার সময় কোনো অ্যাপের লোকেশন অ্যাক্সেসকে প্রভাবিত করে। একটি অ্যাপকে ব্যাকগ্রাউন্ডে লোকেশন অ্যাক্সেস করছে বলে মনে করা হয়, যদি না নিম্নলিখিত শর্তগুলোর মধ্যে একটি পূরণ হয়:

  • অ্যাপটির একটি কার্যকলাপ দেখা যাচ্ছে।
  • অ্যাপটি একটি ফোরগ্রাউন্ড সার্ভিস চালাচ্ছে যেটি ' location ' ফোরগ্রাউন্ড সার্ভিস টাইপ হিসেবে ঘোষণা করেছে।

    আপনার অ্যাপের কোনো সার্ভিসের জন্য ফোরগ্রাউন্ড সার্ভিস টাইপ ঘোষণা করতে, আপনার অ্যাপের targetSdkVersion অথবা compileSdkVersion কে 29 বা তার বেশিতে সেট করুন। ফোরগ্রাউন্ড সার্ভিসগুলো কীভাবে ব্যবহারকারীর শুরু করা সেইসব কাজ চালিয়ে যেতে পারে যেগুলোর জন্য লোকেশন অ্যাক্সেসের প্রয়োজন হয়, সে সম্পর্কে আরও জানুন।

যদি আপনার অ্যাপ জিওফেন্স তৈরি ও মনিটর করে এবং অ্যান্ড্রয়েড ১০ (এপিআই লেভেল ২৯) বা তার উচ্চতর সংস্করণকে টার্গেট করে, তাহলে আপনাকে অবশ্যই ACCESS_BACKGROUND_LOCATION পারমিশনটি ডিক্লেয়ার করতে হবে।

অ্যান্ড্রয়েড ৯ বা তার নিম্নতর সংস্করণ টার্গেট করা হলে অ্যাক্সেস স্বয়ংক্রিয়ভাবে মঞ্জুর করা হয়।

আপনার অ্যাপটি যদি অ্যান্ড্রয়েড ১০ বা তার উচ্চতর সংস্করণে চলে কিন্তু অ্যান্ড্রয়েড ৯ (এপিআই লেভেল ২৮) বা তার নিম্নতর সংস্করণকে টার্গেট করে, তাহলে প্ল্যাটফর্মটি নিম্নলিখিত আচরণটি প্রয়োগ করে:

  • যদি আপনার অ্যাপ ACCESS_FINE_LOCATION অথবা ACCESS_COARSE_LOCATION জন্য একটি <uses-permission> এলিমেন্ট ঘোষণা করে, তাহলে সিস্টেম ইনস্টলেশনের সময় স্বয়ংক্রিয়ভাবে ACCESS_BACKGROUND_LOCATION এর জন্য একটি <uses-permission> এলিমেন্ট যোগ করে দেয়।
  • আপনার অ্যাপ যদি ACCESS_FINE_LOCATION বা ACCESS_COARSE_LOCATION জন্য অনুরোধ করে, তাহলে সিস্টেম স্বয়ংক্রিয়ভাবে সেই অনুরোধে ACCESS_BACKGROUND_LOCATION যোগ করে দেয়।

ডিভাইসটি অ্যান্ড্রয়েড ১০-এ আপগ্রেড করা হলে অ্যাক্সেস করা যাবে

যদি কোনো ব্যবহারকারী আপনার অ্যাপকে ডিভাইসের লোকেশন অ্যাক্সেসের অনুমতি দেন – তা ACCESS_COARSE_LOCATION বা ACCESS_FINE_LOCATION যাই হোক না কেন – এবং তারপর তাদের ডিভাইসটি Android 9 থেকে Android 10-এ আপগ্রেড করেন, তাহলে সিস্টেম স্বয়ংক্রিয়ভাবে আপনার অ্যাপকে দেওয়া লোকেশন-ভিত্তিক অনুমতিগুলোর সেট আপডেট করে দেয়। আপগ্রেডের পরে আপনার অ্যাপ যে অনুমতিগুলো পায়, তা এর টার্গেট SDK ভার্সন এবং এর সংজ্ঞায়িত অনুমতিগুলোর উপর নির্ভর করে, যা নিচের টেবিলে দেখানো হয়েছে:

সারণি ১. অ্যান্ড্রয়েড ১০-এ ডিভাইস আপগ্রেড করার পর লোকেশন পারমিশন অবস্থার পরিবর্তন

লক্ষ্য প্ল্যাটফর্ম সংস্করণ মোটা বা সূক্ষ্ম
অনুমতি দেওয়া হয়েছে?
পটভূমির অনুমতি
ম্যানিফেস্টে সংজ্ঞায়িত?
ডিফল্ট অনুমতি অবস্থা আপডেট করা হয়েছে
অ্যান্ড্রয়েড ১০ হ্যাঁ হ্যাঁ ফোরগ্রাউন্ড এবং ব্যাকগ্রাউন্ড অ্যাক্সেস
অ্যান্ড্রয়েড ১০ হ্যাঁ না শুধুমাত্র সম্মুখভাগে প্রবেশাধিকার
অ্যান্ড্রয়েড ১০ না (সিস্টেম দ্বারা উপেক্ষিত) কোনো প্রবেশাধিকার নেই
অ্যান্ড্রয়েড ৯ বা তার নিচের সংস্করণ হ্যাঁ ডিভাইস আপগ্রেড করার সময় সিস্টেম দ্বারা স্বয়ংক্রিয়ভাবে যুক্ত করা হয় ফোরগ্রাউন্ড এবং ব্যাকগ্রাউন্ড অ্যাক্সেস
অ্যান্ড্রয়েড ৯ বা তার নিচের সংস্করণ না (সিস্টেম দ্বারা উপেক্ষিত) কোনো প্রবেশাধিকার নেই

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

অ্যান্ড্রয়েড ১০ ডিভাইসে টার্গেট এপিআই লেভেল আপডেট করার সময় অ্যাক্সেস প্রত্যাহার করা হয়েছে।

ধরা যাক, আপনার অ্যাপটি অ্যান্ড্রয়েড ১০ চালিত কোনো ডিভাইসে আগে থেকেই ইনস্টল করা আছে। এই পরিস্থিতিতে আপনি যদি অ্যান্ড্রয়েড ১০-কে টার্গেট করে আপনার অ্যাপটি আপডেট করেন, তাহলে ডিভাইসটি ACCESS_BACKGROUND_LOCATION পারমিশনটি বাতিল করে দেয়।

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

ব্যাকগ্রাউন্ড থেকে কার্যকলাপ শুরু করার উপর বিধিনিষেধ

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

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

শনাক্তকারী এবং ডেটা

এই বিভাগে ডিভাইস শনাক্তকারী এবং ডেটা নিয়ে কাজ করার ক্ষেত্রে নির্দিষ্ট পরিবর্তনগুলো তালিকাভুক্ত করা হয়েছে।

যোগাযোগের আকর্ষণ অপসারণ

অ্যান্ড্রয়েড ১০ থেকে প্ল্যাটফর্মটি কন্ট্যাক্টগুলোর অ্যাফিনিটি তথ্য ট্র্যাক করে না। ফলে, আপনার অ্যাপ যদি ব্যবহারকারীর কন্ট্যাক্টগুলোতে সার্চ করে, তাহলে ফলাফলগুলো ইন্টারঅ্যাকশনের ফ্রিকোয়েন্সি অনুসারে সাজানো থাকে না।

ContactsProvider সম্পর্কিত নির্দেশিকাটিতে একটি বিজ্ঞপ্তি রয়েছে , যেখানে Android 10 থেকে শুরু করে সমস্ত ডিভাইসে অপ্রচলিত হয়ে যাওয়া নির্দিষ্ট ফিল্ড এবং মেথডগুলো বর্ণনা করা হয়েছে।

MAC ঠিকানা র‍্যান্ডমাইজেশন

যেসব ডিভাইসে অ্যান্ড্রয়েড ১০ বা তার উচ্চতর সংস্করণ চলে, সেগুলোতে সিস্টেম ডিফল্টরূপে র‍্যান্ডমাইজড ম্যাক অ্যাড্রেস প্রেরণ করে।

আপনার অ্যাপটি যদি এন্টারপ্রাইজ ব্যবহারের ক্ষেত্রে কাজ করে, তাহলে প্ল্যাটফর্মটি MAC অ্যাড্রেস সম্পর্কিত বিভিন্ন অপারেশনের জন্য API প্রদান করে:

  • র‍্যান্ডমাইজড MAC অ্যাড্রেস সংগ্রহ করুন: ডিভাইস ওনার অ্যাপ এবং প্রোফাইল ওনার অ্যাপ getRandomizedMacAddress() কল করার মাধ্যমে একটি নির্দিষ্ট নেটওয়ার্কের জন্য বরাদ্দ করা র‍্যান্ডমাইজড MAC অ্যাড্রেসটি পেতে পারে।
  • প্রকৃত, ফ্যাক্টরি MAC অ্যাড্রেস সংগ্রহ করুন: ডিভাইস মালিক অ্যাপগুলি getWifiMacAddress() কল করে একটি ডিভাইসের প্রকৃত হার্ডওয়্যার MAC অ্যাড্রেস পুনরুদ্ধার করতে পারে। এই পদ্ধতিটি একাধিক ডিভাইসের বহর ট্র্যাক করার জন্য উপযোগী।

/proc/net ফাইলসিস্টেমে প্রবেশাধিকারের উপর বিধিনিষেধ

অ্যান্ড্রয়েড ১০ বা তার উচ্চতর সংস্করণে চালিত ডিভাইসগুলিতে, অ্যাপগুলি /proc/net অ্যাক্সেস করতে পারে না, যেখানে ডিভাইসের নেটওয়ার্ক অবস্থা সম্পর্কিত তথ্য থাকে। যেসব অ্যাপের এই তথ্যে অ্যাক্সেস প্রয়োজন, যেমন ভিপিএন, তাদের NetworkStatsManager বা ConnectivityManager ক্লাস ব্যবহার করা উচিত।

অ-রিসেটযোগ্য ডিভাইস শনাক্তকারীর উপর বিধিনিষেধ

অ্যান্ড্রয়েড ১০ থেকে, ডিভাইসের অপরিবর্তনীয় শনাক্তকারী (যার মধ্যে IMEI এবং সিরিয়াল নম্বর উভয়ই অন্তর্ভুক্ত) অ্যাক্সেস করার জন্য অ্যাপগুলির অবশ্যই READ_PRIVILEGED_PHONE_STATE বিশেষাধিকারপ্রাপ্ত অনুমতি থাকতে হবে।

প্রভাবিত পদ্ধতিগুলোর মধ্যে নিম্নলিখিতগুলো অন্তর্ভুক্ত:

যদি আপনার অ্যাপের অনুমতি না থাকে এবং আপনি তারপরেও নন-রিসেটেবল আইডেন্টিফায়ার সম্পর্কে তথ্য জানতে চান, তাহলে টার্গেট SDK ভার্সনের উপর ভিত্তি করে প্ল্যাটফর্মের প্রতিক্রিয়া ভিন্ন হতে পারে:

  • আপনার অ্যাপটি অ্যান্ড্রয়েড ১০ বা তার উচ্চতর সংস্করণকে টার্গেট করলে একটি SecurityException দেখা দেয়।
  • আপনার অ্যাপটি যদি অ্যান্ড্রয়েড ৯ (এপিআই লেভেল ২৮) বা তার নিচের সংস্করণকে টার্গেট করে, এবং অ্যাপটির READ_PHONE_STATE পারমিশন থাকে, তাহলে মেথডটি null বা প্লেসহোল্ডার ডেটা রিটার্ন করে। অন্যথায়, একটি SecurityException ঘটে।

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

ক্লিপবোর্ড ডেটাতে সীমিত অ্যাক্সেস

আপনার অ্যাপটি যদি ডিফল্ট ইনপুট মেথড এডিটর (IME) না হয় অথবা বর্তমানে ফোকাসে না থাকে, তবে অ্যান্ড্রয়েড ১০ বা তার পরবর্তী সংস্করণগুলোতে আপনার অ্যাপ ক্লিপবোর্ডের ডেটা অ্যাক্সেস করতে পারবে না।

ইউএসবি ডিভাইসের সিরিয়াল নম্বরের সুরক্ষা

আপনার অ্যাপটি যদি অ্যান্ড্রয়েড ১০ বা তার উচ্চতর সংস্করণকে লক্ষ্য করে তৈরি হয়, তবে ব্যবহারকারী ইউএসবি ডিভাইস বা অ্যাক্সেসরি অ্যাক্সেস করার অনুমতি না দেওয়া পর্যন্ত আপনার অ্যাপটি সিরিয়াল নম্বরটি পড়তে পারবে না।

ইউএসবি ডিভাইস নিয়ে কাজ করার বিষয়ে আরও জানতে, ইউএসবি হোস্ট কনফিগার করার নির্দেশিকাটি দেখুন।

ক্যামেরা এবং সংযোগ

এই বিভাগে ক্যামেরা মেটাডেটা এবং কানেক্টিভিটি এপিআই-এর নির্দিষ্ট পরিবর্তনগুলো তালিকাভুক্ত করা হয়েছে।

ক্যামেরার বিবরণ এবং মেটাডেটা অ্যাক্সেসের উপর বিধিনিষেধ

অ্যান্ড্রয়েড ১০ ডিফল্টভাবে getCameraCharacteristics() মেথড দ্বারা রিটার্ন করা তথ্যের পরিধি পরিবর্তন করেছে। বিশেষ করে, এই মেথডের রিটার্ন ভ্যালুতে অন্তর্ভুক্ত সম্ভাব্য ডিভাইস-নির্দিষ্ট মেটাডেটা অ্যাক্সেস করার জন্য আপনার অ্যাপের অবশ্যই CAMERA পারমিশন থাকতে হবে।

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

ওয়াই-ফাই চালু এবং বন্ধ করার উপর বিধিনিষেধ

অ্যান্ড্রয়েড ১০ বা তার উচ্চতর সংস্করণের অ্যাপগুলো ওয়াই-ফাই চালু বা বন্ধ করতে পারে না। WifiManager.setWifiEnabled() মেথডটি সর্বদা false রিটার্ন করে।

যদি ব্যবহারকারীদের ওয়াই-ফাই চালু ও বন্ধ করার জন্য নির্দেশ দিতে হয়, তাহলে একটি সেটিংস প্যানেল ব্যবহার করুন।

কনফিগার করা ওয়াই-ফাই নেটওয়ার্কে সরাসরি প্রবেশের উপর বিধিনিষেধ

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

আপনার অ্যাপটি যদি অ্যান্ড্রয়েড ১০ বা তার উচ্চতর সংস্করণকে টার্গেট করে এবং এটি কোনো সিস্টেম অ্যাপ বা ডিপিসি (DPC) না হয়, তাহলে নিম্নলিখিত মেথডগুলো কোনো দরকারি ডেটা রিটার্ন করে না:

  • getConfiguredNetworks() মেথডটি সর্বদা একটি খালি তালিকা রিটার্ন করে।

  • প্রতিটি নেটওয়ার্ক অপারেশন মেথড যা একটি পূর্ণসংখ্যা মান রিটার্ন করে— addNetwork() এবং updateNetwork() — তা সর্বদা -1 রিটার্ন করে।

  • প্রতিটি নেটওয়ার্ক অপারেশন যা একটি বুলিয়ান মান ফেরত দেয়— removeNetwork() , reassociate() , enableNetwork() , disableNetwork() , reconnect() , এবং disconnect() —সর্বদা false ফেরত দেয়।

আপনার অ্যাপের যদি ওয়াই-ফাই নেটওয়ার্কের সাথে সংযোগ করার প্রয়োজন হয়, তাহলে নিম্নলিখিত বিকল্প পদ্ধতিগুলো ব্যবহার করুন:

  • কোনো ওয়াই-ফাই নেটওয়ার্কে তাৎক্ষণিক স্থানীয় সংযোগ স্থাপন করতে, একটি স্ট্যান্ডার্ড NetworkRequest অবজেক্টে WifiNetworkSpecifier ব্যবহার করুন।
  • ব্যবহারকারীকে ইন্টারনেট অ্যাক্সেস দেওয়ার জন্য বিবেচনার জন্য ওয়াই-ফাই নেটওয়ার্ক যোগ করতে, WifiNetworkSuggestion অবজেক্টগুলো ব্যবহার করুন। অটো-কানেক্ট নেটওয়ার্ক সিলেকশন ডায়ালগে প্রদর্শিত নেটওয়ার্কগুলো আপনি যথাক্রমে addNetworkSuggestions() এবং removeNetworkSuggestions() কল করে যোগ বা অপসারণ করতে পারেন। এই মেথডগুলোর জন্য কোনো লোকেশন পারমিশনের প্রয়োজন হয় না।

কিছু টেলিফোনি, ব্লুটুথ, ওয়াই-ফাই এপিআই-এর জন্য ফাইন লোকেশন পারমিশন প্রয়োজন।

আপনার অ্যাপটি যদি অ্যান্ড্রয়েড ১০ বা তার উচ্চতর সংস্করণকে টার্গেট করে, তবে Wi-Fi, Wi-Fi Aware, বা Bluetooth API-এর অন্তর্ভুক্ত বিভিন্ন মেথড ব্যবহার করার জন্য সেটিতে অবশ্যই ACCESS_FINE_LOCATION পারমিশন থাকতে হবে। নিম্নলিখিত বিভাগগুলিতে প্রভাবিত ক্লাস এবং মেথডগুলির তালিকা দেওয়া হলো।

টেলিফোনি

ওয়াই-ফাই

ব্লুটুথ

অনুমতি

এই অংশে অ্যান্ড্রয়েড পারমিশন মডেলের আপডেটগুলো বর্ণনা করা হয়েছে।

স্ক্রিনের বিষয়বস্তুতে সীমিত প্রবেশাধিকার

ব্যবহারকারীদের স্ক্রিনের বিষয়বস্তু সুরক্ষিত রাখতে, অ্যান্ড্রয়েড ১০ READ_FRAME_BUFFER , CAPTURE_VIDEO_OUTPUT এবং CAPTURE_SECURE_VIDEO_OUTPUT পারমিশনগুলোর পরিধি পরিবর্তন করে ডিভাইসের স্ক্রিনের বিষয়বস্তুতে সাইলেন্ট অ্যাক্সেস প্রতিরোধ করে। অ্যান্ড্রয়েড ১০ থেকে, এই পারমিশনগুলো শুধুমাত্র সিগনেচার-অ্যাক্সেসযোগ্য

যেসব অ্যাপের ডিভাইসের স্ক্রিনের বিষয়বস্তু অ্যাক্সেস করার প্রয়োজন, তাদের MediaProjection API ব্যবহার করা উচিত, যা ব্যবহারকারীর কাছে সম্মতি চেয়ে একটি প্রম্পট প্রদর্শন করে।

লিগ্যাসি অ্যাপগুলিতে ব্যবহারকারীর জন্য অনুমতি যাচাই

আপনার অ্যাপটি যদি অ্যান্ড্রয়েড ৫.১ (এপিআই লেভেল ২২) বা তার নিচের সংস্করণকে টার্গেট করে তৈরি হয়, তাহলে অ্যান্ড্রয়েড ১০ বা তার উচ্চতর সংস্করণের কোনো ডিভাইসে প্রথমবারের মতো অ্যাপটি ব্যবহার করার সময় ব্যবহারকারীরা একটি পারমিশন স্ক্রিন দেখতে পান, যেমনটি চিত্র ১-এ দেখানো হয়েছে। এই স্ক্রিনটি ব্যবহারকারীদের সেইসব পারমিশন প্রত্যাহার করার সুযোগ দেয়, যা সিস্টেম পূর্বে ইনস্টলের সময় আপনার অ্যাপকে প্রদান করেছিল।

সংলাপের স্ক্রিনশট
চিত্র ১. ব্যবহারকারীর জন্য প্রদর্শিত ডায়ালগ বক্স যা পুরোনো অনুমতিগুলো পর্যালোচনা করার সুযোগ দেয়।

শারীরিক কার্যকলাপ শনাক্তকরণ

অ্যান্ড্রয়েড ১০-এ android.permission.ACTIVITY_RECOGNITION রানটাইম পারমিশনটি চালু করা হয়েছে। এটি সেইসব অ্যাপের জন্য যারা ব্যবহারকারীর পদক্ষেপের সংখ্যা শনাক্ত করতে বা তার শারীরিক কার্যকলাপ, যেমন হাঁটা, সাইকেল চালানো বা যানবাহনে চলাচল, শ্রেণীবদ্ধ করতে চায়। এর উদ্দেশ্য হলো, ব্যবহারকারীরা যেন সেটিংস-এ দেখতে পারেন যে ডিভাইসের সেন্সর ডেটা কীভাবে ব্যবহৃত হচ্ছে।

গুগল প্লে পরিষেবার অন্তর্ভুক্ত কিছু লাইব্রেরি, যেমন অ্যাক্টিভিটি রিকগনিশন এপিআই এবং গুগল ফিট এপিআই , ব্যবহারকারী আপনার অ্যাপকে এই অনুমতি না দিলে ফলাফল প্রদান করে না।

ডিভাইসটিতে থাকা একমাত্র বিল্ট-ইন সেন্সরগুলো, যেগুলোর জন্য এই অনুমতি ঘোষণা করার প্রয়োজন হয়, সেগুলো হলো স্টেপ কাউন্টার এবং স্টেপ ডিটেক্টর সেন্সর।

আপনার অ্যাপটি যদি অ্যান্ড্রয়েড ৯ (এপিআই লেভেল ২৮) বা তার নিম্নতর সংস্করণকে টার্গেট করে, তাহলে আপনার অ্যাপটি নিম্নলিখিত প্রতিটি শর্ত পূরণ করলে, সিস্টেম প্রয়োজন অনুযায়ী স্বয়ংক্রিয়ভাবে আপনার অ্যাপকে android.permission.ACTIVITY_RECOGNITION পারমিশনটি প্রদান করে।

  • ম্যানিফেস্ট ফাইলে com.google.android.gms.permission.ACTIVITY_RECOGNITION পারমিশনটি অন্তর্ভুক্ত রয়েছে।
  • ম্যানিফেস্ট ফাইলে android.permission.ACTIVITY_RECOGNITION পারমিশনটি অন্তর্ভুক্ত নেই

যদি সিস্টেম-অটো android.permission.ACTIVITY_RECOGNITION পারমিশনটি প্রদান করে, তাহলে আপনার অ্যাপটিকে অ্যান্ড্রয়েড ১০ টার্গেট করে আপডেট করার পরেও পারমিশনটি থেকে যায়। তবে, ব্যবহারকারী সিস্টেম সেটিংস থেকে যেকোনো সময় এই পারমিশনটি প্রত্যাহার করতে পারেন।

UI থেকে অনুমতি গ্রুপগুলি সরানো হয়েছে

অ্যান্ড্রয়েড ১০ থেকে, অ্যাপগুলো UI-তে পারমিশনগুলো কীভাবে গ্রুপ করা আছে তা খুঁজে বের করতে পারে না।