অ্যাপকে দেওয়া অনুমতি নিম্নলিখিত বিষয় অ্যাক্সেস করা থেকে রক্ষা করে ব্যবহারকারীর গোপনীয়তা সুরক্ষিত করতে সাহায্য করে:
- সীমাবদ্ধ ডেটা, যেমন সিস্টেমের অবস্থা এবং ব্যবহারকারীর যোগাযোগের তথ্য
- সীমাবদ্ধ অ্যাকশন, যেমন পেয়ার করা ডিভাইসের সাথে কানেক্ট করা এবং অডিও রেকর্ড করা
এই পৃষ্ঠায় Android অনুমতি কীভাবে কাজ করে তার ওভারভিউ দেওয়া হয়েছে, যার মধ্যে রয়েছে অনুমতি ব্যবহারের জন্য হাই-লেভেল ওয়ার্কফ্লো, বিভিন্ন ধরনের অনুমতির বিবরণ এবং আপনার অ্যাপে অনুমতি ব্যবহারের জন্য কিছু পেশাদার পদ্ধতি। অন্যান্য পৃষ্ঠায় ব্যাখ্যা করা হয়েছে কীভাবে আপনার অ্যাপের অনুমতির অনুরোধ কমানো, অনুমতি ঘোষণা করা, রানটাইম অনুমতির অনুরোধ করা এবং অন্যান্য অ্যাপ কীভাবে আপনার অ্যাপের কম্পোনেন্টের সাথে ইন্টার্যাক্ট করতে পারে তা সীমাবদ্ধ করা যায়।
Android অ্যাপকে দেওয়া অনুমতির সম্পূর্ণ তালিকা দেখতে, অনুমতি API রেফারেন্স পৃষ্ঠা দেখুন।
অনুমতির ওয়ার্কফ্লো দেখায় এমন কিছু স্যাম্পেল অ্যাপ দেখতে, GitHub-এ Android-এর অনুমতির স্যাম্পেল রিপোজিটরি দেখুন।
অনুমতি ব্যবহার করার জন্য ওয়ার্কফ্লো
আপনার অ্যাপে এমন কোনও কার্যকারিতা থাকলে যার জন্য সীমাবদ্ধ ডেটা বা সীমাবদ্ধ অ্যাকশনে অ্যাক্সেস প্রয়োজন হতে পারে, তাহলে আপনি অনুমতি ঘোষণা না করেই তথ্য পেতে বা অ্যাকশন পারফর্ম করতে পারবেন কিনা তা নির্ধারণ করুন। আপনি কোনও অনুমতি ঘোষণা না করেই আপনার অ্যাপে অনেক ব্যবহারের কেস পূরণ করতে পারেন, যেমন ফটো তোলা, মিডিয়া প্লেব্যাক পজ করা এবং প্রাসঙ্গিক বিজ্ঞাপন দেখানো।
আপনি যদি সিদ্ধান্ত নেন যে কোনও ব্যবহারের ক্ষেত্রে আপনার অ্যাপকে অবশ্যই সীমাবদ্ধ ডেটা অ্যাক্সেস করতে হবে বা সীমাবদ্ধ অ্যাকশন পারফর্ম করতে হবে, তাহলে উপযুক্ত অনুমতি ঘোষণা করুন। কিছু অনুমতি, যেগুলি ইনস্টল-টাইম অনুমতি নামে পরিচিত, আপনার অ্যাপ ইনস্টল করার সময় অটোমেটিক দেওয়া হয়। অন্যান্য অনুমতি, যা রানটাইম অনুমতি নামে পরিচিত, সেগুলির জন্য আপনার অ্যাপকে আরও এক ধাপ এগিয়ে যেতে হবে এবং রানটাইমে অনুমতি চাইতে হবে।
অ্যাপকে দেওয়া অনুমতি ব্যবহার করার ওয়ার্কফ্লো চিত্র ১-এ দেখানো হয়েছে:
অনুমতির ধরন
Android অনুমতিকে বিভিন্ন বিভাগে ভাগ করে, যার মধ্যে ইনস্টল-টাইম অনুমতি, রানটাইম অনুমতি ও বিশেষ অনুমতি অন্তর্ভুক্ত। প্রতিটি অনুমতির ধরন থেকে বোঝা যায় যে সিস্টেম আপনার অ্যাপকে সেই অনুমতি দিলে, আপনার অ্যাপ কোন কোন বিধিনিষেধযুক্ত ডেটা অ্যাক্সেস করতে পারবে এবং কোন কোন বিধিনিষেধযুক্ত অ্যাকশন নিতে পারবে। প্রতিটি অনুমতির জন্য সুরক্ষার লেভেল তার ধরনের উপর ভিত্তি করে হয় এবং অনুমতি API রেফারেন্স পৃষ্ঠায় দেখানো হয়।
ইনস্টল-টাইম অনুমতি
ইনস্টল-টাইম অনুমতি আপনার অ্যাপকে সীমিত ডেটা অ্যাক্সেস করার অনুমতি দেয় অথবা আপনার অ্যাপকে এমন বিধিনিষেধযুক্ত অ্যাকশন পারফর্ম করার অনুমতি দেয় যা সিস্টেম বা অন্যান্য অ্যাপকে খুব কম প্রভাবিত করে। আপনার অ্যাপে ইনস্টল-টাইম অনুমতি ঘোষণা করলে, ব্যবহারকারী অ্যাপের বিবরণ পৃষ্ঠা দেখার সময় অ্যাপ স্টোর তাকে ইনস্টল-টাইম অনুমতি সংক্রান্ত বিজ্ঞপ্তি দেখায়, যেমনটি ছবি ২-এ দেখানো হয়েছে। ব্যবহারকারী আপনার অ্যাপ ইনস্টল করলে, সিস্টেম অটোমেটিক আপনার অ্যাপকে অনুমতি দেয়।
Android-এ ইনস্টল-টাইম অনুমতির বিভিন্ন সাব-টাইপ অন্তর্ভুক্ত থাকে, যার মধ্যে সাধারণ অনুমতি ও সিগনেচার অনুমতিও রয়েছে।
সাধারণ অনুমতি
এইসব অনুমতি ডেটা ও অ্যাকশনে অ্যাক্সেস দেয় যা আপনার অ্যাপের স্যান্ডবক্সের বাইরেও কাজ করে, তবে ব্যবহারকারীর গোপনীয়তা ও অন্যান্য অ্যাপের অপারেশনের ক্ষেত্রে খুব কম ঝুঁকি থাকে।
সিস্টেম সাধারণ অনুমতিতে normal সুরক্ষা লেভেল অ্যাসাইন করে।
স্বাক্ষর সংক্রান্ত অনুমতি
অ্যাপটি যখন একই সার্টিফিকেট দ্বারা স্বাক্ষরিত হয়, তখন সিস্টেম অ্যাপটিকে একটি স্বাক্ষর অনুমতি দেয় অ্যাপ বা OS হিসাবে যা অনুমতি সংজ্ঞায়িত করে।
অটোফিল বা VPN পরিষেবার মতো বিশেষ সুবিধা প্রদানকারী পরিষেবা প্রয়োগ করে এমন অ্যাপ্লিকেশনও সিগনেচার সংক্রান্ত অনুমতি ব্যবহার করে। এই অ্যাপগুলির জন্য পরিষেবা-বাইন্ডিং স্বাক্ষর অনুমতি প্রয়োজন যাতে শুধুমাত্র সিস্টেম পরিষেবাগুলির সাথে আবদ্ধ হতে পারে।
সিস্টেম সিগনেচার সংক্রান্ত অনুমতির জন্য signature সুরক্ষা লেভেল অ্যাসাইন করে।
রানটাইম অনুমতি
রানটাইম অনুমতি, যা বিপজ্জনক অনুমতি নামেও পরিচিত, আপনার অ্যাপকে সীমাবদ্ধ ডেটাতে অতিরিক্ত অ্যাক্সেস দেয় বা আপনার অ্যাপকে সীমাবদ্ধ অ্যাকশন পারফর্ম করতে দেয় যা সিস্টেম এবং অন্যান্য অ্যাপকে আরও উল্লেখযোগ্যভাবে প্রভাবিত করে। তাই, বিধিনিষেধযুক্ত ডেটা অ্যাক্সেস বা বিধিনিষেধযুক্ত অ্যাকশন পারফর্ম করার আগে, আপনার অ্যাপে রানটাইম অনুমতি অনুরোধ করতে হবে। এই অনুমতিগুলি আগে দেওয়া হয়েছে বলে ধরে নেবেন না—সেগুলি চেক করুন এবং, প্রয়োজন হলে, প্রতিটি অ্যাক্সেসের আগে সেগুলির জন্য অনুরোধ করুন।
আপনার অ্যাপ রানটাইম অনুমতি অনুরোধ করলে, সিস্টেম রানটাইম অনুমতি প্রম্পট দেখায়, যেমনটি ছবি ৩-এ দেখানো হয়েছে।
অনেক রানটাইম অনুমতি ব্যবহারকারীর ব্যক্তিগত ডেটা অ্যাক্সেস করে, এটি এক বিশেষ ধরনের সীমাবদ্ধ ডেটা যার মধ্যে সম্ভাব্য সংবেদনশীল তথ্য থাকে। ব্যবহারকারীর ব্যক্তিগত ডেটার উদাহরণের মধ্যে লোকেশন ও যোগাযোগের তথ্য অন্তর্ভুক্ত।
মাইক্রোফোন ও ক্যামেরা বিশেষ করে সংবেদনশীল তথ্যে অ্যাক্সেস প্রদান করে। তাই, সিস্টেম আপনাকে আপনার অ্যাপ কেন এই তথ্য অ্যাক্সেস করে তা ব্যাখ্যা করতে সাহায্য করে।
সিস্টেম রানটাইম অনুমতিতে dangerous সুরক্ষা লেভেল অ্যাসাইন করে।
বিশেষ অনুমতি
বিশেষ অনুমতি নির্দিষ্ট অ্যাপ অপারেশনের সাথে সম্পর্কিত। শুধুমাত্র প্ল্যাটফর্ম ও OEM বিশেষ অনুমতি নির্ধারণ করতে পারে। এছাড়াও, প্ল্যাটফর্ম এবং OEM সাধারণত বিশেষ অনুমতি সংজ্ঞায়িত করে যখন তারা বিশেষভাবে শক্তিশালী অ্যাকশনে অ্যাক্সেস সুরক্ষিত করতে চায়, যেমন অন্যান্য অ্যাপের উপর ড্র করা।
সিস্টেম সেটিংসে বিশেষ অ্যাপ অ্যাক্সেস পৃষ্ঠায় ব্যবহারকারী টগল করতে পারবেন এমন অপারেশনের সেট থাকে। এইসব অপারেশনের মধ্যে অনেকগুলি বিশেষ অনুমতি হিসেবে প্রয়োগ করা হয়।
কীভাবে বিশেষ অনুমতির জন্য অনুরোধ করবেন সেই সম্পর্কে আরও জানুন।
সিস্টেম বিশেষ অনুমতিতে appop সুরক্ষা লেভেল অ্যাসাইন করে।
পারমিশন গ্রুপ
অনুমতি অনুমতি গ্রুপ-এর অন্তর্গত হতে পারে। পারমিশন গ্রুপে লজিক্যালি সম্পর্কিত পারমিশনের সেট থাকে। যেমন, এসএমএস মেসেজ পাঠানো এবং পাওয়ার অনুমতি একই গ্রুপের অন্তর্গত হতে পারে, কারণ দুটিই এসএমএসের সাথে অ্যাপ্লিকেশনের ইন্টার্যাকশনের সাথে সম্পর্কিত।
কোনও অ্যাপ কাছাকাছি সম্পর্কিত পারমিশনের অনুরোধ করলে, পারমিশন গ্রুপ সিস্টেমকে ব্যবহারকারীর কাছে উপস্থাপিত সিস্টেম ডায়ালগের সংখ্যা কমাতে সাহায্য করে। কোনও ব্যবহারকারীকে কোনও অ্যাপ্লিকেশনের জন্য অনুমতি দেওয়ার জন্য প্রম্পট দেখানো হলে, একই গ্রুপের অন্তর্গত অনুমতিগুলি একই ইন্টারফেসে দেখানো হয়। তবে, অনুমতিগুলি বিজ্ঞপ্তি ছাড়াই গ্রুপ পরিবর্তন করতে পারে, তাই ধরে নেবেন না যে কোনও নির্দিষ্ট অনুমতি অন্য কোনও অনুমতির সাথে গ্রুপ করা হয়েছে।
পেশাদার পদ্ধতি
অ্যাপকে দেওয়া অনুমতি সিস্টেম নিরাপত্তা ফিচার-এর উপর ভিত্তি করে তৈরি করা হয় এবং ব্যবহারকারীর গোপনীয়তা সম্পর্কিত নিম্নলিখিত লক্ষ্যগুলি পূরণ করতে Android-কে সাহায্য করে:
- নিয়ন্ত্রণ: অ্যাপের সাথে শেয়ার করা ডেটার উপর ব্যবহারকারীর নিয়ন্ত্রণ থাকে।
- স্বচ্ছতা: ব্যবহারকারী বুঝতে পারেন যে অ্যাপটি কোন ডেটা ব্যবহার করে এবং কেন অ্যাপটি এই ডেটা অ্যাক্সেস করে।
- ডেটা সংগ্রহে সীমাবদ্ধতা: কোনও অ্যাপ শুধুমাত্র সেই ডেটা অ্যাক্সেস ও ব্যবহার করে যা ব্যবহারকারীর চালু করা নির্দিষ্ট টাস্ক বা অ্যাকশনের জন্য প্রয়োজন।
এই বিভাগে আপনার অ্যাপে কার্যকরভাবে অনুমতি ব্যবহার করার জন্য পেশাদার পদ্ধতির একটি সেট উপস্থাপন করা হয়েছে। Android-এ আপনি কীভাবে অনুমতি নিয়ে কাজ করতে পারেন সে সম্পর্কে আরও বিশদ বিবরণের জন্য, অ্যাপকে দেওয়া অনুমতির পেশাদার পদ্ধতি পৃষ্ঠাটি দেখুন।
ন্যূনতম সংখ্যক অনুমতির জন্য অনুরোধ করুন
ব্যবহারকারী আপনার অ্যাপে কোনও নির্দিষ্ট অ্যাকশনের অনুরোধ করলে, আপনার অ্যাপকে শুধুমাত্র সেই অ্যাকশন সম্পূর্ণ করার জন্য প্রয়োজনীয় অনুমতির অনুরোধ করতে হবে। আপনি কীভাবে অনুমতি ব্যবহার করছেন তার উপর নির্ভর করে, সংবেদনশীল তথ্যে অ্যাক্সেসের উপর নির্ভর না করে আপনার অ্যাপের ব্যবহারের ক্ষেত্রে পূরণ করার বিকল্প উপায় থাকতে পারে।
নির্দিষ্ট অ্যাকশনের সাথে রানটাইম অনুমতি অ্যাসোসিয়েট করা
আপনার অ্যাপের ব্যবহারের ক্ষেত্রে ফ্লোতে যত দেরিতে সম্ভব অনুমতির অনুরোধ করুন। যেমন, আপনার অ্যাপ ব্যবহারকারীদের অন্য কাউকে অডিও মেসেজ পাঠানোর সুবিধা দিলে, ব্যবহারকারী মেসেজিং স্ক্রিনে গিয়ে অডিও মেসেজ পাঠান বোতামে প্রেস না করা পর্যন্ত অপেক্ষা করুন। ব্যবহারকারী বোতামটি প্রেস করার পরে, আপনার অ্যাপ মাইক্রোফোন অ্যাক্সেস করার জন্য অনুরোধ করতে পারে।
আপনার অ্যাপের ডিপেন্ডেন্সি বিবেচনা করুন
আপনি কোনও লাইব্রেরি অন্তর্ভুক্ত করলে, আপনাকে সেটির অনুমতির প্রয়োজনীয়তাও মেনে চলতে হবে। প্রতিটি ডিপেন্ডেন্সির জন্য কী কী অনুমতি প্রয়োজন এবং সেই অনুমতিগুলি কী কাজে ব্যবহার করা হয় সে সম্পর্কে সচেতন থাকুন।
স্বচ্ছতা বজায় রাখুন
আপনি যখন অনুমতির অনুরোধ করেন, তখন আপনি কী অ্যাক্সেস করছেন, কেন এবং অনুমতি না দিলে কোন কোন কার্যকারিতা প্রভাবিত হবে সে সম্পর্কে স্পষ্ট হন, যাতে ব্যবহারকারীরা সচেতন সিদ্ধান্ত নিতে পারেন।
সিস্টেম অ্যাক্সেসকে এক্সপ্লিসিট করুন
আপনি যখন ক্যামেরা বা মাইক্রোফোনের মতো সংবেদনশীল ডেটা বা হার্ডওয়্যার অ্যাক্সেস করেন, তখন সিস্টেম যদি আগে থেকে এইসব ইন্ডিকেটর না দেখায়, তাহলে আপনার অ্যাপে একটি অবিচ্ছিন্ন ইঙ্গিত প্রদান করুন। এই রিমাইন্ডার ব্যবহারকারীদের বুঝতে সাহায্য করে যে আপনার অ্যাপ ঠিক কখন বিধিনিষেধযুক্ত ডেটা অ্যাক্সেস করে বা বিধিনিষেধযুক্ত অ্যাকশন পারফর্ম করে।
সিস্টেম কম্পোনেন্টে অনুমতি
শুধুমাত্র সিস্টেমের কার্যকারিতার জন্য অনুরোধ করার জন্য অনুমতি নয়। আপনার অ্যাপের সিস্টেম কম্পোনেন্ট, অন্য কোন অ্যাপ আপনার অ্যাপের সাথে ইন্টার্যাক্ট করতে পারবে তা সীমাবদ্ধ করতে পারে, যেমন অন্যান্য অ্যাপের সাথে ইন্টার্যাকশন সীমাবদ্ধ করা সংক্রান্ত পৃষ্ঠায় বর্ণনা করা হয়েছে।