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

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

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

সেরা পরিবর্তন

এই বিভাগে Android 10-এ গোপনীয়তা সংক্রান্ত গুরুত্বপূর্ণ পরিবর্তনগুলি অন্তর্ভুক্ত করা হয়েছে।

অ্যাপ ফাইল ও মিডিয়ার জন্য এক্সটার্নাল স্টোরেজ অ্যাক্সেস করার সুবিধা

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

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

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

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

লোকেশন তথ্য অ্যাক্সেস করার জন্য অ্যাপের কাছে যে অতিরিক্ত কন্ট্রোল থাকে, তা ব্যবহারকারীদের কাছেও যাতে থাকে, সেই জন্য Android 10-এ ACCESS_BACKGROUND_LOCATION অনুমতি চালু করা হয়েছে।

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

আপনার অ্যাপ যদি জিওফেন্স তৈরি ও মনিটর করে এবং Android 10 (API লেভেল 29) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে, তাহলে আপনাকে অবশ্যই ACCESS_BACKGROUND_LOCATION অনুমতি ঘোষণা করতে হবে।

Android 9 বা তার আগের ভার্সন টার্গেট করার সময় অটোমেটিক অ্যাক্সেস দেওয়া হয়

আপনার অ্যাপ Android 10 বা তার পরবর্তী যেকোনও ভার্সনে রান করলেও Android 9 (API লেভেল 28) বা তার আগের যেকোনও ভার্সনকে টার্গেট করলে, প্ল্যাটফর্ম নিম্নলিখিত আচরণ প্রয়োগ করে:

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

ডিভাইস Android 10-এ আপগ্রেড করা হলে অ্যাক্সেস করুন

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

টেবিল ১. Android 10-এ ডিভাইস আপগ্রেড করার পরে লোকেশন অ্যাক্সেসের অনুমতি সংক্রান্ত স্ট্যাটাসে পরিবর্তন

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

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

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

এমন একটি পরিস্থিতি বিবেচনা করুন যেখানে আপনার অ্যাপটি ইতিমধ্যেই এমন একটি ডিভাইসে ইনস্টল করা আছে যা Android 10-এ চলে। এই পরিস্থিতিতে আপনি যদি Android 10-কে টার্গেট করার জন্য অ্যাপ আপডেট করেন, তাহলে ডিভাইস ACCESS_BACKGROUND_LOCATION অনুমতি প্রত্যাহার করে নেয়।

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

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

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

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

শনাক্তকারী ও ডেটা

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

পরিচিতি অ্যাফিনিটি সরানো

Android 10 থেকে শুরু করে, প্ল্যাটফর্মটি পরিচিতি অ্যাফিনিটি তথ্য ট্র্যাক করে না। ফলে, আপনার অ্যাপ ব্যবহারকারীর পরিচিতি সার্চ করলে, ফলাফল ইন্টার‍্যাকশনের ফ্রিকোয়েন্সি অনুযায়ী সাজানো হয় না।

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

MAC অ্যাড্রেস র‍্যান্ডমাইজেশন

Android 10 বা তার পরবর্তী ভার্সনে চলা ডিভাইসে, সিস্টেম সাধারণত র‍্যান্ডমাইজ করা MAC অ্যাড্রেস ট্রান্সমিট করে।

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

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

/proc/net ফাইলসিস্টেম অ্যাক্সেস করার ক্ষেত্রে বিধিনিষেধ

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

রিসেট করা যায় না এমন ডিভাইস শনাক্তকারীর উপর বিধিনিষেধ

Android 10 থেকে শুরু করে, ডিভাইসের রিসেট করা যায় না এমন শনাক্তকারী অ্যাক্সেস করার জন্য অ্যাপের কাছে অবশ্যই READ_PRIVILEGED_PHONE_STATE বিশেষ অনুমতি থাকতে হবে, যার মধ্যে IMEI এবং সিরিয়াল নম্বর উভয়ই অন্তর্ভুক্ত।

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

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

  • আপনার অ্যাপ Android 10 বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করলে, SecurityException হয়।
  • আপনার অ্যাপ Android 9 (API লেভেল ২৮) বা তার আগের যেকোনও ভার্সনকে টার্গেট করলে, অ্যাপের কাছে READ_PHONE_STATE অনুমতি থাকলে, পদ্ধতিটি null বা প্লেসহোল্ডার ডেটা ফিরিয়ে দেয়। অন্যথায়, SecurityException হয়।

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

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

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

USB ডিভাইসের সিরিয়াল নম্বর সুরক্ষিত রাখা

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

USB ডিভাইসের সাথে কাজ করার ব্যাপারে আরও জানতে, কীভাবে USB হোস্ট কনফিগার করবেন সেই সংক্রান্ত নির্দেশিকা দেখুন।

ক্যামেরা ও কানেক্টিভিটি

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

ক্যামেরার বিবরণ ও মেটাডেটা অ্যাক্সেস করার ক্ষেত্রে বিধিনিষেধ

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

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

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

Android 10 বা তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপ ওয়াই-ফাই চালু বা বন্ধ করতে পারে না। WifiManager.setWifiEnabled() পদ্ধতি সবসময় false রিটার্ন করে।

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

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

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

আপনার অ্যাপ Android 10 বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করলে এবং এটি সিস্টেম অ্যাপ বা DPC না হলে, নিম্নলিখিত পদ্ধতিগুলি কোনও কাজের ডেটা রিটার্ন করে না:

  • getConfiguredNetworks() পদ্ধতি সবসময় একটি খালি তালিকা দেখায়।

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

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

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

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

কিছু টেলিফোনি, ব্লুটুথ, ওয়াই-ফাই API-এর জন্য সুনির্দিষ্ট লোকেশন অ্যাক্সেস করার অনুমতি প্রয়োজন

আপনার অ্যাপ Android 10 বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করলে, ওয়াই-ফাই, Wi-Fi Aware বা ব্লুটুথ API-এর মধ্যে বিভিন্ন পদ্ধতি ব্যবহার করার জন্য সেটির কাছে ACCESS_FINE_LOCATION অনুমতি থাকতে হবে। নিম্নলিখিত বিভাগে প্রভাবিত ক্লাস ও পদ্ধতির তালিকা দেওয়া হয়েছে।

টেলিফোন সংক্রান্ত পরিষেবা

ওয়াই-ফাই

ব্লুটুথ

অনুমতি

এই বিভাগে Android-এর পারমিশন মডেলের আপডেট সম্পর্কে বর্ণনা করা হয়েছে।

স্ক্রিনের কন্টেন্টে অ্যাক্সেস সীমাবদ্ধ করা হয়েছে

ব্যবহারকারীর স্ক্রিনের কন্টেন্ট সুরক্ষিত রাখতে, Android 10 READ_FRAME_BUFFER, CAPTURE_VIDEO_OUTPUT এবং CAPTURE_SECURE_VIDEO_OUTPUT অনুমতির স্কোপ পরিবর্তন করে ডিভাইসের স্ক্রিনের কন্টেন্টে সাইলেন্ট অ্যাক্সেস প্রতিরোধ করে। Android 10-এর ক্ষেত্রে, এইসব অনুমতি শুধুমাত্র স্বাক্ষর-অ্যাক্সেস হিসেবে কাজ করে।

যেসব অ্যাপকে ডিভাইসের স্ক্রিন কন্টেন্ট অ্যাক্সেস করতে হয়, সেগুলিকে MediaProjection API ব্যবহার করতে হবে, যা ব্যবহারকারীর সম্মতি চেয়ে একটি প্রম্পট দেখায়।

পুরনো অ্যাপে ব্যবহারকারী নিজে ইন্টার‌্যাক্ট করতে পারেন এমন অনুমতি চেক করা

আপনার অ্যাপ Android 5.1 (API লেভেল 22) বা তার আগের ভার্সনকে টার্গেট করলে, Android 10 বা তার পরের ভার্সন চালানো ডিভাইসে প্রথমবার আপনার অ্যাপ ব্যবহার করার সময় ব্যবহারকারীরা একটি অনুমতি স্ক্রিন দেখতে পাবেন, যেমনটি চিত্র ১-এ দেখানো হয়েছে। এই স্ক্রিন ব্যবহারকারীদের ইনস্টল করার সময় আপনার অ্যাপকে সিস্টেমের আগে দেওয়া অনুমতি প্রত্যাহার করার সুযোগ দেয়।

ডায়ালগের স্ক্রিন ক্যাপচার
ছবি ১. ব্যবহারকারী নিজে ইন্টার‌্যাক্ট করতে পারেন এমন ডায়ালগ যা পুরনো অনুমতি পর্যালোচনা করার সুবিধা দেয়

শারীরিক অ্যাক্টিভিটি শনাক্তকরণ

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

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

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

আপনার অ্যাপ Android 9 (API লেভেল 28) বা তার আগের কোনও ভার্সনকে টার্গেট করলে, প্রয়োজন অনুযায়ী সিস্টেম অটোমেটিক আপনার অ্যাপকে android.permission.ACTIVITY_RECOGNITION অনুমতি দেয়, যদি আপনার অ্যাপ নিম্নলিখিত প্রতিটি শর্ত পূরণ করে:

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

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

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

Android 10 থেকে, অ্যাপগুলি UI-তে কীভাবে অনুমতিগুলি গ্রুপ করা হয়েছে তা দেখতে পারে না।