আপনার অনুমতি অনুরোধ ছোট করুন

অ্যাপের গুণমান উন্নত করার এবং ব্যবহারকারীর গোপনীয়তা রক্ষার অংশ হিসেবে, আমরা আপনাকে আপনার অ্যাপে অনুমতির ব্যবহার কমানোর পরামর্শ দিই। এটি ব্যবহারকারীদের একটি নিরাপদ এবং সুরক্ষিত ব্যবহারকারী পরিবেশ প্রদান করে এমন উচ্চ-মানের অ্যাপগুলি আবিষ্কার এবং ব্যবহার করতে সহায়তা করে৷

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

অনুমতির ব্যবহার কমানোর একাধিক বিকল্প উপায় আছে:

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

যদি আপনাকে অবশ্যই একটি অনুমতি ঘোষণা করতে হয়, সর্বদা ব্যবহারকারীর সিদ্ধান্তকে সম্মান করুন এবং আপনার অ্যাপের অভিজ্ঞতাকে সুন্দরভাবে হ্রাস করার একটি উপায় প্রদান করুন৷

এই পৃষ্ঠাটি বেশ কয়েকটি ব্যবহারের ক্ষেত্রে বর্ণনা করে যা আপনার অ্যাপ কোনো অনুমতির প্রয়োজন ঘোষণা ছাড়াই পূরণ করতে পারে।

কাছাকাছি স্থান দেখান

আপনার অ্যাপের ব্যবহারকারীর আনুমানিক অবস্থান জানতে হবে। এটি অবস্থান-সচেতন তথ্য দেখানোর জন্য উপযোগী, যেমন কাছাকাছি রেস্টুরেন্ট।

কিছু ব্যবহারের ক্ষেত্রে শুধুমাত্র একটি ডিভাইসের অবস্থানের মোটামুটি অনুমান প্রয়োজন। এই পরিস্থিতিতে, আপনার অ্যাপ কত ঘন ঘন অবস্থান-সচেতন তথ্যের প্রয়োজন তার উপর নির্ভর করে নিম্নলিখিতগুলির মধ্যে একটি করুন:

  • আপনার অ্যাপের যদি ঘন ঘন অবস্থানের প্রয়োজন হয়, তাহলে ACCESS_COARSE_LOCATION অনুমতি ঘোষণা করুন। অনুমতি আনুমানিক অবস্থান নির্ভুলতা সম্পর্কে ডকুমেন্টেশনে বর্ণিত হিসাবে অবস্থান পরিষেবাগুলি থেকে একটি ডিভাইস অবস্থান অনুমান প্রদান করে।
  • আপনার অ্যাপের লোকেশন কম ঘন ঘন বা শুধুমাত্র একবার প্রয়োজন হলে, ব্যবহারকারীকে পরিবর্তে একটি ঠিকানা বা একটি পোস্টাল কোড লিখতে বলার কথা বিবেচনা করুন।

অন্যান্য ব্যবহারের ক্ষেত্রে ডিভাইসের অবস্থানের আরও সুনির্দিষ্ট অনুমান প্রয়োজন। এই পরিস্থিতিতে শুধুমাত্র যখন ACCESS_FINE_LOCATION অনুমতি ঘোষণা করা ঠিক হয়।

ফাইল তৈরি করুন এবং অ্যাক্সেস করুন

অ্যান্ড্রয়েড আপনাকে স্টোরেজ বা সেন্সর সম্পর্কিত কোনো অনুমতি ঘোষণা করার প্রয়োজন ছাড়াই ফাইল তৈরি এবং অ্যাক্সেস করতে দেয়।

মিডিয়া ফাইল খুলুন

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

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

যদি আপনার অ্যাপের ফটো পিকার ব্যবহার না করে মিডিয়া ফাইল অ্যাক্সেস করতে হয়, তাহলে আপনাকে কোনো স্টোরেজ অনুমতি ঘোষণা করতে হবে না:

নথি খুলুন

আপনার অ্যাপ হয়ত আপনার অ্যাপে বা অন্য অ্যাপে ব্যবহারকারীর তৈরি নথিগুলি দেখাতে পারে। একটি সাধারণ উদাহরণ হল একটি পাঠ্য ফাইল।

এই পরিস্থিতিতে, শুধুমাত্র পুরানো ডিভাইসগুলির সাথে সামঞ্জস্যের জন্য READ_EXTERNAL_STORAGE ঘোষণা করুন৷ android:maxSdkVersion 28 এ সেট করুন।

কোন অ্যাপটি নথি তৈরি করেছে তার উপর নির্ভর করে, নিম্নলিখিতগুলির মধ্যে একটি করুন:

ছবি তুলুন

ব্যবহারকারীরা আগে থেকে ইনস্টল করা সিস্টেম ক্যামেরা অ্যাপ ব্যবহার করে আপনার অ্যাপে ছবি তুলতে পারে।

এই পরিস্থিতিতে, CAMERA অনুমতি ঘোষণা করবেন না। পরিবর্তে, ACTION_IMAGE_CAPTURE অভিপ্রায় ক্রিয়া শুরু করুন৷

একটি ভিডিও রেকর্ড করুন

ব্যবহারকারীরা আগে থেকে ইনস্টল করা সিস্টেম ক্যামেরা অ্যাপ ব্যবহার করে আপনার অ্যাপে ভিডিও রেকর্ড করতে পারে।

এই পরিস্থিতিতে, CAMERA অনুমতি ঘোষণা করবেন না। পরিবর্তে, ACTION_VIDEO_CAPTURE অভিপ্রায় ক্রিয়া শুরু করুন৷

আপনার অ্যাপের একটি ইন্সট্যান্স চালাচ্ছে এমন ডিভাইসটি শনাক্ত করুন

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

এই পরিস্থিতিতে, ডিভাইসের IMEI সরাসরি অ্যাক্সেস করবেন না। আসলে, Android 10 হিসাবে, আপনি তা করতে পারবেন না। পরিবর্তে, নিম্নলিখিতগুলির মধ্যে একটি করুন:

  • ইন্সট্যান্স আইডি লাইব্রেরি ব্যবহার করে আপনার অ্যাপের উদাহরণের জন্য একটি অনন্য ডিভাইস শনাক্তকারী পান।
  • আপনার নিজস্ব শনাক্তকারী তৈরি করুন যা আপনার অ্যাপের সঞ্চয়স্থানে স্কোপ করা হয়েছে। মৌলিক সিস্টেম ফাংশন ব্যবহার করুন, যেমন randomUUID()

ব্লুটুথের মাধ্যমে একটি ডিভাইসের সাথে পেয়ার করুন

আপনার অ্যাপ ব্লুটুথের মাধ্যমে অন্য ডিভাইসে ডেটা স্থানান্তর করে একটি উন্নত অভিজ্ঞতা দিতে পারে।

এই কার্যকারিতা সমর্থন করতে, ACCESS_FINE_LOCATION , ACCESS_COARSE_LOCATIION , বা BLUETOOTH_ADMIN অনুমতিগুলি ঘোষণা করবেন না৷ পরিবর্তে, সহচর ডিভাইস পেয়ারিং ব্যবহার করুন৷

স্বয়ংক্রিয়ভাবে একটি পেমেন্ট কার্ড নম্বর লিখুন

Google Play পরিষেবাগুলি একটি লাইব্রেরি অফার করে যা আপনাকে স্বয়ংক্রিয়ভাবে একটি পেমেন্ট কার্ড নম্বর লিখতে দেয়৷ CAMERA অনুমতি ঘোষণা করার পরিবর্তে, আপনি ডেবিট এবং ক্রেডিট কার্ড স্বীকৃতি লাইব্রেরি ব্যবহার করতে পারেন।

ফোন কল এবং পাঠ্য বার্তা পরিচালনা করুন

অ্যান্ড্রয়েড এবং গুগল প্লে পরিষেবাগুলি লাইব্রেরিগুলি অফার করে যা আপনাকে ফোন কল বা এসএমএস বার্তা সম্পর্কিত কোনও অনুমতি ঘোষণা করার প্রয়োজন ছাড়াই ফোন কল এবং পাঠ্য বার্তা পরিচালনা করতে দেয়।

স্বয়ংক্রিয়ভাবে একটি এককালীন পাসকোড লিখুন

একটি দ্বি-ফ্যাক্টর প্রমাণীকরণ কর্মপ্রবাহকে স্ট্রীমলাইন করতে, আপনার অ্যাপ স্বয়ংক্রিয়ভাবে এক-বারের পাসকোড প্রবেশ করতে পারে যা ব্যবহারকারীর ডিভাইসে তাদের পরিচয় যাচাই করতে পাঠানো হয়।

Google Play পরিষেবা দ্বারা চালিত ডিভাইসগুলিতে এই কার্যকারিতা সমর্থন করতে, READ_SMS অনুমতি ঘোষণা করবেন না৷ পরিবর্তে, SMS Retriever API ব্যবহার করুন।

অন্যান্য ডিভাইসে, যদি আপনার অ্যাপটি Android 8.0 (API লেভেল 26) বা উচ্চতরকে লক্ষ্য করে, তাহলে createAppSpecificSmsToken() ব্যবহার করে একটি অ্যাপ-নির্দিষ্ট টোকেন তৈরি করুন। এই টোকেনটি অন্য অ্যাপ বা পরিষেবাতে পাঠান যা একটি যাচাইকরণ SMS বার্তা পাঠাতে পারে।

স্বয়ংক্রিয়ভাবে ব্যবহারকারীর ফোন নম্বর লিখুন

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

Google Play পরিষেবা দ্বারা চালিত ডিভাইসগুলিতে এই কার্যকারিতা সমর্থন করতে, READ_PHONE_STATE অনুমতি ঘোষণা করবেন না৷ পরিবর্তে, ফোন নম্বর ইঙ্গিত লাইব্রেরি ব্যবহার করুন।

ফিল্টার ফোন কল

ব্যবহারকারীর জন্য অপ্রয়োজনীয় বাধা কমাতে, আপনার অ্যাপ স্প্যামের জন্য ফোন কল ফিল্টার করতে পারে।

এই কার্যকারিতা সমর্থন করার জন্য, READ_PHONE_STATE অনুমতি ঘোষণা করবেন না। পরিবর্তে, CallScreeningService API ব্যবহার করুন।

ফোন কল করুন

আপনার অ্যাপটি একটি পরিচিতির তথ্যে ট্যাপ করে একটি ফোন কল করার ক্ষমতা দিতে পারে।

এই কার্যকারিতা সমর্থন করতে, ACTION_CALL কর্মের পরিবর্তে ACTION_DIAL অভিপ্রায় ক্রিয়া ব্যবহার করুন৷ ACTION_CALL জন্য ইনস্টল-টাইম অনুমতি প্রয়োজন CALL_PHONE , যা এমন ডিভাইসগুলিকে বাধা দেয় যা কল করতে পারে না, যেমন কিছু ট্যাবলেট, আপনার অ্যাপ্লিকেশন ইনস্টল করা থেকে।

আপনার অ্যাপ বাধাগ্রস্ত হলে মিডিয়া পজ করুন

যদি ব্যবহারকারী একটি ফোন কল পায়, বা যদি একটি ব্যবহারকারী-কনফিগার করা অ্যালার্ম ঘটে, আপনার অ্যাপের অডিও ফোকাস ফিরে না আসা পর্যন্ত আপনার অ্যাপের যেকোনো মিডিয়া প্লেব্যাককে বিরতি দেওয়া উচিত।

এই কার্যকারিতা সমর্থন করার জন্য, READ_PHONE_STATE অনুমতি ঘোষণা করবেন না। পরিবর্তে, onAudioFocusChange() ইভেন্ট হ্যান্ডলার প্রয়োগ করুন, যা সিস্টেমটি তার অডিও ফোকাস স্থানান্তর করলে স্বয়ংক্রিয়ভাবে চলে। কিভাবে অডিও ফোকাস বাস্তবায়ন করতে হয় সে সম্পর্কে আরও জানুন।

বারকোড স্ক্যান করুন

Android-এ Google Code Scanner API-এর জন্য সমর্থন রয়েছে, Google Play পরিষেবা দ্বারা চালিত, যা আপনাকে ক্যামেরার অনুমতি ছাড়াই বারকোড ডিকোড করতে দেয়৷ এই API ব্যবহারকারীর গোপনীয়তা রক্ষা করতে সাহায্য করে এবং আপনার বারকোড-স্ক্যানিং ব্যবহারের ক্ষেত্রে আপনার একটি কাস্টম UI তৈরি করার সম্ভাবনা কম করে তোলে।

API বারকোড স্ক্যান করে এবং শুধুমাত্র আপনার অ্যাপে স্ক্যান ফলাফল ফেরত দেয়। ছবিগুলি ডিভাইসে প্রসেস করা হয় এবং Google কোনো ডেটা বা স্ক্যান ফলাফল সঞ্চয় করে না।

আপনার অ্যাপের যদি জটিল ব্যবহারের ক্ষেত্রে বা বারকোড ফর্ম্যাটগুলিকে সমর্থন করার প্রয়োজন হয়, অথবা যদি এটি একটি কাস্টম UI এর প্রয়োজন হয়, তাহলে পরিবর্তে ML Kit বারকোড স্ক্যানিং API ব্যবহার করুন৷

অব্যবহৃত অনুমতি পুনরায় সেট করুন

অ্যান্ড্রয়েড অব্যবহৃত রানটাইম অনুমতিগুলিকে তাদের ডিফল্ট, অস্বীকৃত অবস্থায় পুনরায় সেট করার একাধিক উপায় সরবরাহ করে।

নকশা নির্দেশিকা পড়ুন.

রানটাইম অনুমতি অনুরোধ

একবার আপনি মূল্যায়ন করেছেন যে আপনার অ্যাপটি ঘোষণা করতে হবে এবং রানটাইম অনুমতির অনুরোধ করতে হবে, এটি করার জন্য একটি নির্দিষ্ট কর্মপ্রবাহ অনুসরণ করুন।

নকশা নির্দেশিকা পড়ুন.

কেন আপনার অ্যাপের অনুমতি প্রয়োজন তা ব্যাখ্যা করুন

requestPermissions() ব্যবহার করা একটি ডায়ালগ প্রদর্শন করে যা নির্দেশ করে যে আপনার অ্যাপ কোন অনুমতিগুলি ব্যবহার করতে চায় কিন্তু কেন তা ব্যাখ্যা করে না, যা ব্যবহারকারীর কাছে বিভ্রান্তিকর হতে পারে।

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

অনুমতি অস্বীকার হ্যান্ডেল

আপনার অ্যাপটি ব্যবহারকারীদের অনুমতি দেওয়ার আগে এবং পরে অনুমতি অস্বীকার করার প্রভাব বুঝতে সাহায্য করবে।

নকশা নির্দেশিকা পড়ুন.

,

অ্যাপের গুণমান উন্নত করার এবং ব্যবহারকারীর গোপনীয়তা রক্ষার অংশ হিসেবে, আমরা আপনাকে আপনার অ্যাপে অনুমতির ব্যবহার কমানোর পরামর্শ দিই। এটি ব্যবহারকারীদের একটি নিরাপদ এবং সুরক্ষিত ব্যবহারকারী পরিবেশ প্রদান করে এমন উচ্চ-মানের অ্যাপগুলি আবিষ্কার এবং ব্যবহার করতে সহায়তা করে৷

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

অনুমতির ব্যবহার কমানোর একাধিক বিকল্প উপায় আছে:

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

যদি আপনাকে অবশ্যই একটি অনুমতি ঘোষণা করতে হয়, সর্বদা ব্যবহারকারীর সিদ্ধান্তকে সম্মান করুন এবং আপনার অ্যাপের অভিজ্ঞতাকে সুন্দরভাবে হ্রাস করার একটি উপায় প্রদান করুন৷

এই পৃষ্ঠাটি বেশ কয়েকটি ব্যবহারের ক্ষেত্রে বর্ণনা করে যা আপনার অ্যাপ কোনো অনুমতির প্রয়োজন ঘোষণা ছাড়াই পূরণ করতে পারে।

কাছাকাছি স্থান দেখান

আপনার অ্যাপের ব্যবহারকারীর আনুমানিক অবস্থান জানতে হবে। এটি অবস্থান-সচেতন তথ্য দেখানোর জন্য উপযোগী, যেমন কাছাকাছি রেস্টুরেন্ট।

কিছু ব্যবহারের ক্ষেত্রে শুধুমাত্র একটি ডিভাইসের অবস্থানের মোটামুটি অনুমান প্রয়োজন। এই পরিস্থিতিতে, আপনার অ্যাপ কত ঘন ঘন অবস্থান-সচেতন তথ্যের প্রয়োজন তার উপর নির্ভর করে নিম্নলিখিতগুলির মধ্যে একটি করুন:

  • আপনার অ্যাপের যদি ঘন ঘন অবস্থানের প্রয়োজন হয়, তাহলে ACCESS_COARSE_LOCATION অনুমতি ঘোষণা করুন। অনুমতি আনুমানিক অবস্থান নির্ভুলতা সম্পর্কে ডকুমেন্টেশনে বর্ণিত হিসাবে অবস্থান পরিষেবাগুলি থেকে একটি ডিভাইস অবস্থান অনুমান প্রদান করে।
  • আপনার অ্যাপের লোকেশন কম ঘন ঘন বা শুধুমাত্র একবার প্রয়োজন হলে, ব্যবহারকারীকে পরিবর্তে একটি ঠিকানা বা একটি পোস্টাল কোড লিখতে বলার কথা বিবেচনা করুন।

অন্যান্য ব্যবহারের ক্ষেত্রে ডিভাইসের অবস্থানের আরও সুনির্দিষ্ট অনুমান প্রয়োজন। এই পরিস্থিতিতে শুধুমাত্র যখন ACCESS_FINE_LOCATION অনুমতি ঘোষণা করা ঠিক হয়।

ফাইল তৈরি করুন এবং অ্যাক্সেস করুন

অ্যান্ড্রয়েড আপনাকে স্টোরেজ বা সেন্সর সম্পর্কিত কোনো অনুমতি ঘোষণা করার প্রয়োজন ছাড়াই ফাইল তৈরি এবং অ্যাক্সেস করতে দেয়।

মিডিয়া ফাইল খুলুন

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

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

যদি আপনার অ্যাপের ফটো পিকার ব্যবহার না করে মিডিয়া ফাইল অ্যাক্সেস করতে হয়, তাহলে আপনাকে কোনো স্টোরেজ অনুমতি ঘোষণা করতে হবে না:

নথি খুলুন

আপনার অ্যাপ হয়ত আপনার অ্যাপে বা অন্য অ্যাপে ব্যবহারকারীর তৈরি নথিগুলি দেখাতে পারে। একটি সাধারণ উদাহরণ হল একটি পাঠ্য ফাইল।

এই পরিস্থিতিতে, শুধুমাত্র পুরানো ডিভাইসগুলির সাথে সামঞ্জস্যের জন্য READ_EXTERNAL_STORAGE ঘোষণা করুন৷ android:maxSdkVersion 28 এ সেট করুন।

কোন অ্যাপটি নথি তৈরি করেছে তার উপর নির্ভর করে, নিম্নলিখিতগুলির মধ্যে একটি করুন:

ছবি তুলুন

ব্যবহারকারীরা আগে থেকে ইনস্টল করা সিস্টেম ক্যামেরা অ্যাপ ব্যবহার করে আপনার অ্যাপে ছবি তুলতে পারে।

এই পরিস্থিতিতে, CAMERA অনুমতি ঘোষণা করবেন না। পরিবর্তে, ACTION_IMAGE_CAPTURE অভিপ্রায় ক্রিয়া শুরু করুন৷

একটি ভিডিও রেকর্ড করুন

ব্যবহারকারীরা আগে থেকে ইনস্টল করা সিস্টেম ক্যামেরা অ্যাপ ব্যবহার করে আপনার অ্যাপে ভিডিও রেকর্ড করতে পারে।

এই পরিস্থিতিতে, CAMERA অনুমতি ঘোষণা করবেন না। পরিবর্তে, ACTION_VIDEO_CAPTURE অভিপ্রায় ক্রিয়া শুরু করুন৷

আপনার অ্যাপের একটি ইন্সট্যান্স চালাচ্ছে এমন ডিভাইসটি শনাক্ত করুন

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

এই পরিস্থিতিতে, ডিভাইসের IMEI সরাসরি অ্যাক্সেস করবেন না। আসলে, Android 10 হিসাবে, আপনি তা করতে পারবেন না। পরিবর্তে, নিম্নলিখিতগুলির মধ্যে একটি করুন:

  • ইন্সট্যান্স আইডি লাইব্রেরি ব্যবহার করে আপনার অ্যাপের উদাহরণের জন্য একটি অনন্য ডিভাইস শনাক্তকারী পান।
  • আপনার নিজস্ব শনাক্তকারী তৈরি করুন যা আপনার অ্যাপের সঞ্চয়স্থানে স্কোপ করা হয়েছে। মৌলিক সিস্টেম ফাংশন ব্যবহার করুন, যেমন randomUUID()

ব্লুটুথের মাধ্যমে একটি ডিভাইসের সাথে পেয়ার করুন

আপনার অ্যাপ ব্লুটুথের মাধ্যমে অন্য ডিভাইসে ডেটা স্থানান্তর করে একটি উন্নত অভিজ্ঞতা দিতে পারে।

এই কার্যকারিতা সমর্থন করতে, ACCESS_FINE_LOCATION , ACCESS_COARSE_LOCATIION , বা BLUETOOTH_ADMIN অনুমতিগুলি ঘোষণা করবেন না৷ পরিবর্তে, সহচর ডিভাইস পেয়ারিং ব্যবহার করুন৷

স্বয়ংক্রিয়ভাবে একটি পেমেন্ট কার্ড নম্বর লিখুন

Google Play পরিষেবাগুলি একটি লাইব্রেরি অফার করে যা আপনাকে স্বয়ংক্রিয়ভাবে একটি পেমেন্ট কার্ড নম্বর লিখতে দেয়৷ CAMERA অনুমতি ঘোষণা করার পরিবর্তে, আপনি ডেবিট এবং ক্রেডিট কার্ড স্বীকৃতি লাইব্রেরি ব্যবহার করতে পারেন।

ফোন কল এবং পাঠ্য বার্তা পরিচালনা করুন

অ্যান্ড্রয়েড এবং গুগল প্লে পরিষেবাগুলি লাইব্রেরিগুলি অফার করে যা আপনাকে ফোন কল বা এসএমএস বার্তা সম্পর্কিত কোনও অনুমতি ঘোষণা করার প্রয়োজন ছাড়াই ফোন কল এবং পাঠ্য বার্তা পরিচালনা করতে দেয়।

স্বয়ংক্রিয়ভাবে একটি এককালীন পাসকোড লিখুন

একটি দ্বি-ফ্যাক্টর প্রমাণীকরণ কর্মপ্রবাহকে স্ট্রীমলাইন করতে, আপনার অ্যাপ স্বয়ংক্রিয়ভাবে এক-বারের পাসকোড প্রবেশ করতে পারে যা ব্যবহারকারীর ডিভাইসে তাদের পরিচয় যাচাই করতে পাঠানো হয়।

Google Play পরিষেবা দ্বারা চালিত ডিভাইসগুলিতে এই কার্যকারিতা সমর্থন করতে, READ_SMS অনুমতি ঘোষণা করবেন না৷ পরিবর্তে, SMS Retriever API ব্যবহার করুন।

অন্যান্য ডিভাইসে, যদি আপনার অ্যাপটি Android 8.0 (API লেভেল 26) বা উচ্চতরকে লক্ষ্য করে, তাহলে createAppSpecificSmsToken() ব্যবহার করে একটি অ্যাপ-নির্দিষ্ট টোকেন তৈরি করুন। এই টোকেনটি অন্য অ্যাপ বা পরিষেবাতে পাঠান যা একটি যাচাইকরণ SMS বার্তা পাঠাতে পারে।

স্বয়ংক্রিয়ভাবে ব্যবহারকারীর ফোন নম্বর লিখুন

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

Google Play পরিষেবা দ্বারা চালিত ডিভাইসগুলিতে এই কার্যকারিতা সমর্থন করতে, READ_PHONE_STATE অনুমতি ঘোষণা করবেন না৷ পরিবর্তে, ফোন নম্বর ইঙ্গিত লাইব্রেরি ব্যবহার করুন।

ফিল্টার ফোন কল

ব্যবহারকারীর জন্য অপ্রয়োজনীয় বাধা কমাতে, আপনার অ্যাপ স্প্যামের জন্য ফোন কল ফিল্টার করতে পারে।

এই কার্যকারিতা সমর্থন করার জন্য, READ_PHONE_STATE অনুমতি ঘোষণা করবেন না। পরিবর্তে, CallScreeningService API ব্যবহার করুন।

ফোন কল করুন

আপনার অ্যাপটি একটি পরিচিতির তথ্যে ট্যাপ করে একটি ফোন কল করার ক্ষমতা দিতে পারে।

এই কার্যকারিতা সমর্থন করতে, ACTION_CALL কর্মের পরিবর্তে ACTION_DIAL অভিপ্রায় ক্রিয়া ব্যবহার করুন৷ ACTION_CALL জন্য ইনস্টল-টাইম অনুমতি প্রয়োজন CALL_PHONE , যা এমন ডিভাইসগুলিকে বাধা দেয় যা কল করতে পারে না, যেমন কিছু ট্যাবলেট, আপনার অ্যাপ্লিকেশন ইনস্টল করা থেকে।

আপনার অ্যাপ বাধাগ্রস্ত হলে মিডিয়া পজ করুন

যদি ব্যবহারকারী একটি ফোন কল পায়, বা যদি একটি ব্যবহারকারী-কনফিগার করা অ্যালার্ম ঘটে, আপনার অ্যাপের অডিও ফোকাস ফিরে না আসা পর্যন্ত আপনার অ্যাপের যেকোনো মিডিয়া প্লেব্যাককে বিরতি দেওয়া উচিত।

এই কার্যকারিতা সমর্থন করার জন্য, READ_PHONE_STATE অনুমতি ঘোষণা করবেন না। পরিবর্তে, onAudioFocusChange() ইভেন্ট হ্যান্ডলার প্রয়োগ করুন, যা সিস্টেমটি তার অডিও ফোকাস স্থানান্তর করলে স্বয়ংক্রিয়ভাবে চলে। কিভাবে অডিও ফোকাস বাস্তবায়ন করতে হয় সে সম্পর্কে আরও জানুন।

বারকোড স্ক্যান করুন

Android-এ Google Code Scanner API-এর জন্য সমর্থন রয়েছে, Google Play পরিষেবা দ্বারা চালিত, যা আপনাকে ক্যামেরার অনুমতি ছাড়াই বারকোড ডিকোড করতে দেয়৷ এই API ব্যবহারকারীর গোপনীয়তা রক্ষা করতে সাহায্য করে এবং আপনার বারকোড-স্ক্যানিং ব্যবহারের ক্ষেত্রে আপনার একটি কাস্টম UI তৈরি করার সম্ভাবনা কম করে তোলে।

API বারকোড স্ক্যান করে এবং শুধুমাত্র আপনার অ্যাপে স্ক্যান ফলাফল ফেরত দেয়। ছবিগুলি ডিভাইসে প্রসেস করা হয় এবং Google কোনো ডেটা বা স্ক্যান ফলাফল সঞ্চয় করে না।

আপনার অ্যাপের যদি জটিল ব্যবহারের ক্ষেত্রে বা বারকোড ফর্ম্যাটগুলিকে সমর্থন করার প্রয়োজন হয়, অথবা যদি এটি একটি কাস্টম UI এর প্রয়োজন হয়, তাহলে পরিবর্তে ML Kit বারকোড স্ক্যানিং API ব্যবহার করুন৷

অব্যবহৃত অনুমতি পুনরায় সেট করুন

অ্যান্ড্রয়েড অব্যবহৃত রানটাইম অনুমতিগুলিকে তাদের ডিফল্ট, অস্বীকৃত অবস্থায় পুনরায় সেট করার একাধিক উপায় সরবরাহ করে।

নকশা নির্দেশিকা পড়ুন.

রানটাইম অনুমতি অনুরোধ

একবার আপনি মূল্যায়ন করেছেন যে আপনার অ্যাপটি ঘোষণা করতে হবে এবং রানটাইম অনুমতির অনুরোধ করতে হবে, এটি করার জন্য একটি নির্দিষ্ট কর্মপ্রবাহ অনুসরণ করুন।

নকশা নির্দেশিকা পড়ুন.

কেন আপনার অ্যাপের অনুমতি প্রয়োজন তা ব্যাখ্যা করুন

requestPermissions() ব্যবহার করা একটি ডায়ালগ প্রদর্শন করে যা নির্দেশ করে যে আপনার অ্যাপ কোন অনুমতিগুলি ব্যবহার করতে চায় কিন্তু কেন তা ব্যাখ্যা করে না, যা ব্যবহারকারীর কাছে বিভ্রান্তিকর হতে পারে।

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

অনুমতি অস্বীকার হ্যান্ডেল

আপনার অ্যাপটি ব্যবহারকারীদের অনুমতি দেওয়ার আগে এবং পরে অনুমতি অস্বীকার করার প্রভাব বুঝতে সাহায্য করবে।

নকশা নির্দেশিকা পড়ুন.