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

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

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

অ্যান্ড্রয়েড ৬.০+ এর অনুমতি

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

বর্ধিত পরিস্থিতিগত প্রেক্ষাপট

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

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

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

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

লেনদেনের বোঝা বৃদ্ধি

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

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

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

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

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

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

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

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

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

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

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

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

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

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