অ্যাপ্লিকেশন অনুমতি সেরা অনুশীলন

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

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

Android 6.0+ এ অনুমতি

অ্যান্ড্রয়েড 6.0 (এপিআই লেভেল 23) এবং উচ্চতর, অ্যাপগুলি ইনস্টলেশনের আগে ব্যবহার না করে রানটাইমে ব্যবহারকারীর কাছ থেকে অনুমতির জন্য অনুরোধ করতে পারে। এটি অ্যাপগুলিকে অনুমতির অনুরোধ করার অনুমতি দেয় যখন অ্যাপটির প্রকৃতপক্ষে পরিষেবাগুলির দ্বারা সুরক্ষিত পরিষেবা বা ডেটার প্রয়োজন হয়৷ যদিও এটি (অগত্যা) সামগ্রিক অ্যাপ আচরণ পরিবর্তন করে না, এটি সংবেদনশীল ব্যবহারকারীর ডেটা যেভাবে পরিচালনা করা হয় তার সাথে প্রাসঙ্গিক কিছু পরিবর্তন তৈরি করে:

পরিস্থিতিগত প্রেক্ষাপট বেড়েছে

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

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

অনুমতি প্রদানে বৃহত্তর নমনীয়তা

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

লেনদেনের বোঝা বেড়েছে

ব্যবহারকারীদের পৃথকভাবে অনুমতি গোষ্ঠীর জন্য অ্যাক্সেস দিতে বলা হয় এবং সেট হিসাবে নয়। এটি আপনার অনুরোধ করা অনুমতির সংখ্যা হ্রাস করা অত্যন্ত গুরুত্বপূর্ণ করে তোলে। এটি অনুমতি প্রদানের জন্য ব্যবহারকারীর বোঝা বাড়ায় এবং তাই অন্তত একটি অনুরোধ প্রত্যাখ্যান করার সম্ভাবনা বাড়ায়।

একটি ডিফল্ট হ্যান্ডলার হতে প্রয়োজন যে অনুমতি

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

ব্যবহারকারীদের একটি ডিফল্ট হ্যান্ডলার প্রম্পট দেখানোর নির্দেশিকা সহ ডিফল্ট হ্যান্ডলার সম্পর্কে আরও তথ্যের জন্য, শুধুমাত্র ডিফল্ট হ্যান্ডলারগুলিতে ব্যবহৃত অনুমতিগুলির নির্দেশিকা দেখুন

আপনি যে লাইব্রেরিগুলির সাথে কাজ করছেন তা জানুন

কখনও কখনও আপনি আপনার অ্যাপে যে লাইব্রেরিগুলি ব্যবহার করেন তাদের অনুমতির প্রয়োজন হয়৷ উদাহরণস্বরূপ, প্রয়োজনীয় কার্যকারিতা বাস্তবায়নের জন্য বিজ্ঞাপন এবং বিশ্লেষণ লাইব্রেরির LOCATION অনুমতি গোষ্ঠীতে অ্যাক্সেসের প্রয়োজন হতে পারে। কিন্তু ব্যবহারকারীর দৃষ্টিকোণ থেকে, অনুমতির অনুরোধ আপনার অ্যাপ থেকে আসে, লাইব্রেরি থেকে নয়।

ব্যবহারকারীরা যেমন একই কার্যকারিতার জন্য কম অনুমতি ব্যবহার করে এমন অ্যাপ্লিকেশানগুলি নির্বাচন করে, তেমনি বিকাশকারীদের তাদের লাইব্রেরিগুলি পর্যালোচনা করা উচিত এবং অপ্রয়োজনীয় অনুমতিগুলি ব্যবহার করে না এমন তৃতীয় পক্ষের SDK নির্বাচন করা উচিত৷ উদাহরণস্বরূপ, আপনি যদি অবস্থানের কার্যকারিতা প্রদান করে এমন একটি লাইব্রেরি ব্যবহার করেন, তবে নিশ্চিত করুন যে আপনি অবস্থান-ভিত্তিক লক্ষ্যমাত্রার কার্যকারিতা ব্যবহার না করা পর্যন্ত আপনি FINE_LOCATION অনুমতির অনুরোধ করছেন না৷

অবস্থানে ব্যাকগ্রাউন্ড অ্যাক্সেস সীমিত করুন

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

উভয় অনুমতি মডেলের জন্য পরীক্ষা

অ্যান্ড্রয়েড 6.0 (এপিআই লেভেল 23) এবং উচ্চতর সংস্করণে, ব্যবহারকারীরা অ্যাপটি ইনস্টল করার সময় এটি করার পরিবর্তে রান টাইমে অ্যাপ অনুমতি দেয় এবং প্রত্যাহার করে। ফলস্বরূপ, আপনাকে আরও বিস্তৃত শর্তের অধীনে আপনার অ্যাপটি পরীক্ষা করতে হবে। অ্যান্ড্রয়েড 6.0-এর আগে, আপনি যুক্তিসঙ্গতভাবে ধরে নিতে পারেন যে যদি আপনার অ্যাপটি আদৌ চলছে, তবে এটি অ্যাপ ম্যানিফেস্টে ঘোষণা করা সমস্ত অনুমতি রয়েছে। এখন, ব্যবহারকারী API স্তর নির্বিশেষে যে কোনও অ্যাপের জন্য অনুমতিগুলি চালু বা বন্ধ করতে পারে। বিভিন্ন অনুমতি পরিস্থিতিতে সঠিকভাবে আপনার অ্যাপের কার্যকারিতা নিশ্চিত করতে আপনার পরীক্ষা করা উচিত।

নিম্নলিখিত টিপস আপনাকে API স্তর 23 বা উচ্চতর চলমান ডিভাইসগুলিতে অনুমতি-সম্পর্কিত কোড সমস্যাগুলি খুঁজে পেতে সহায়তা করবে:

  • আপনার অ্যাপের বর্তমান অনুমতি এবং সম্পর্কিত কোড পাথ সনাক্ত করুন।
  • পরীক্ষা ব্যবহারকারী অনুমতি-সুরক্ষিত পরিষেবা এবং ডেটা জুড়ে প্রবাহিত হয়।
  • প্রদত্ত বা প্রত্যাহারকৃত অনুমতিগুলির বিভিন্ন সমন্বয়ের সাথে পরীক্ষা করুন। উদাহরণস্বরূপ, একটি ক্যামেরা অ্যাপ তার ম্যানিফেস্টে CAMERA , READ_CONTACTS এবং ACCESS_FINE_LOCATION তালিকাভুক্ত করতে পারে। অ্যাপটি সমস্ত অনুমতি কনফিগারেশনকে সুন্দরভাবে পরিচালনা করতে পারে তা নিশ্চিত করতে আপনার এই প্রতিটি অনুমতি চালু এবং বন্ধ করে অ্যাপটি পরীক্ষা করা উচিত।
  • কমান্ড লাইন থেকে অনুমতি পরিচালনা করতে adb টুল ব্যবহার করুন:
    • গ্রুপ অনুসারে অনুমতি এবং স্থিতি তালিকা করুন:
      $ adb shell pm list permissions -d -g
    • এক বা একাধিক অনুমতি প্রদান বা প্রত্যাহার করুন:
      $ adb shell pm [grant|revoke] <permission-name> ...
  • অনুমতি ব্যবহার করে এমন পরিষেবাগুলির জন্য আপনার অ্যাপ বিশ্লেষণ করুন।

অতিরিক্ত সম্পদ