Android পরিচিতি পিকার

Android পরিচিতি পিকার একটি স্ট্যান্ডার্ড, গোপনীয়তা সুরক্ষিত রাখা ইন্টারফেস প্রদান করে যা ব্যবহারকারীদের অ্যাপের সাথে নির্দিষ্ট পরিচিতি শেয়ার করতে দেয়। Android 17-এ চালু করা এই ফিচারটি, READ_CONTACTS-এর মতো বিস্তৃত অনুমতির বিকল্প হিসেবে কাজ করে, যার জন্য কোনও অনুমতির প্রয়োজন হয় না।

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

স্থাপত্যশিল্প

পরিচিতি বাছাইকারীতে দুটি প্রধান কম্পোনেন্ট থাকে:

  • পিকার UI অ্যাপ: এই কম্পোনেন্ট পরিচিতি বেছে নেওয়ার জন্য ব্যবহারকারীর ইন্টারফেস হিসেবে কাজ করে।
  • সেশন প্রদানকারী: এই কম্পোনেন্টটি ব্যাকএন্ড পরিষেবা হিসেবে কাজ করে যা অস্থায়ী অ্যাক্সেস সেশন ম্যানেজ করে।

পরিচিতি বাছাইকারী সিকোয়েন্স ডায়াগ্রাম

ছবি ১. সিকোয়েন্স ডায়াগ্রাম

পিকার UI

পিকার UI, পরিচিতি বেছে নেওয়ার জন্য ইউজার ইন্টারফেস ম্যানেজ করে এবং অনুরোধ করা ডেটার ধরনের উপর ভিত্তি করে ভিউ পপুলেট করার জন্য সরাসরি পরিচিতি প্রদানকারীকে কোয়েরি করে। যেসব ভিউ কাজ করে তার মধ্যে রয়েছে:

  • শুধুমাত্র ফোন নম্বর: UI-তে ফোন নম্বর সহ পরিচিতি দেখানো হয়।
  • শুধুমাত্র ইমেল: UI ইমেল আইডি সহ পরিচিতি দেখায়।
  • কাস্টম পরিচিতির তথ্য: UI নির্দিষ্ট অনুরোধ করা ডেটা ফিল্ডের সাথে ম্যাচ করা পরিচিতি দেখায়।

এছাড়াও, UI-তে নিম্নলিখিত ফিচার কাজ করে:

  • বর্ণানুক্রমিকভাবে সাজানো তালিকা: পরিচিতিগুলি বর্ণানুক্রমিকভাবে সাজানো হয় এবং ডুপ্লিকেট সরিয়ে দেওয়া হয়।
  • পরিচিতির অবতার: UI পরিচিতির ফটো বা অবতার দেখায়।
  • পছন্দসই: পরিচিতি তালিকার উপরে পছন্দসই বিভাগ দেখানো হয়।
  • প্রোফাইল সুইচার: এই ফিচার ব্যবহারকারীদের বিভিন্ন ব্যবহারকারীর প্রোফাইল (যেমন, অফিস বনাম ব্যক্তিগত) থেকে পরিচিতি বেছে নিতে দেয়।
  • একক ও একাধিক বেছে নেওয়া: সিস্টেম একক ও একাধিক বেছে নেওয়ার দুটি মোডেই কাজ করে (ডিফল্ট সীমা ৫০ এবং সর্বাধিক সীমা ১০০)।
  • বেছে নেওয়া পরিচিতির প্রিভিউ: কনফার্ম করার আগে ব্যবহারকারী বেছে নেওয়া পরিচিতির প্রিভিউ দেখতে ও ম্যানেজ করতে পারবেন।
  • দ্রুত স্ক্রল করা: এই ফিচারের মাধ্যমে আপনি পরিচিতি তালিকা দ্রুত নেভিগেট করতে পারবেন।
  • সার্চ করুন: নির্দিষ্ট পরিচিতি খুঁজে পাওয়ার জন্য সার্চ বার দেওয়া হয়েছে।
  • গোপনীয়তা ব্যানার ও গোপনীয়তার বিবরণ সংক্রান্ত পৃষ্ঠা: একটি বাধ্যতামূলক বিজ্ঞপ্তি ব্যবহারকারীদের জানায় যে অ্যাপটি ঠিক কোন ডেটা ফিল্ড (যেমন, ফোন নম্বর, ইমেল) অনুরোধ করছে।

সেশন প্রোভাইডার

সেশন প্রোভাইডার (packages/providers/ContactsProvider) ক্লায়েন্ট অ্যাপ ও পরিচিতি প্রোভাইডারের মধ্যে নিরাপদ মধ্যস্থতাকারী হিসেবে কাজ করে।

  • ভূমিকা: আপনি Intent.ACTION_PICK_CONTACTS ব্যবহার করে পিকার লঞ্চ করলেই শুধুমাত্র সেশন প্রদানকারীকে ব্যবহার করুন।
  • সেশন ম্যানেজমেন্ট: কোনও ব্যবহারকারী পরিচিতি বেছে নিলে, পিকার UI বেছে নেওয়া ডেটা (ক্লায়েন্টের UID-এর সাথে ম্যাপ করা) সেশন প্রোভাইডারে লেখে।
  • ডেটা অ্যাক্সেস: প্রদানকারী পিকারকে একটি content://com.android.providers.contacts.picker.sessions URI রিটার্ন করে। পিকার, ক্লায়েন্ট অ্যাপকে URI ফেরত দেওয়ার আগে উপযুক্ত রিড ফ্ল্যাগ প্রয়োগ করে। এই URI, ব্যবহারকারীর বেছে নেওয়া নির্দিষ্ট ডেটা ফিল্ডে সাময়িক, গ্র্যানুলার রিড অ্যাক্সেস দেয়, এর ফলে পরিচিতির সব ডেটা প্রকাশ পায় না।
  • বিশেষ অ্যাক্সেস: android.permission.MANAGE_CONTACTS_PICKER_SESSION স্বাক্ষর এবং বিশেষ অনুমতি সেশন প্রদানকারীর রাইট অ্যাক্সেসকে সুরক্ষিত করে, এটি নিশ্চিত করে যে শুধুমাত্র বিশ্বস্ত সিস্টেম পিকার সেশন তৈরি করতে পারে।

ইন্টিগ্রেশন

হার্ডওয়্যার প্রস্তুতকারক ও পার্টনারদের Android 17 ও এর পরের যেকোনও ভার্সনের বিল্ডে Android Contact Picker অন্তর্ভুক্ত করতে হবে।

যেসব উদ্দেশ্য পূরণ করা যায়

  • Intent.ACTION_PICK_CONTACTS: Android 17 ও তার পরের যেকোনও ভার্সনের জন্য সাজেস্ট করা ইনটেন্ট।
  • Intent.ACTION_PICK: ব্যাকওয়ার্ড কম্প্যাটিবিলিটির জন্য বজায় রাখা হয়েছে। সিস্টেম সাপোর্ট করা MIME ধরনের জন্য নতুন পিকারের কাছে এইসব অনুরোধ অটোমেটিক রাউট করে (ইমেল, ফোন বা পরিচিতি)।

সেশন ম্যানেজমেন্ট

ডিভাইসের স্বাস্থ্য ও গোপনীয়তা বজায় রাখতে, সেশন প্রদানকারী কঠোর ডেটা ক্লিন-আপ নীতি প্রয়োগ করে:

  • পরিষ্কার করার কাজ: ২৪ ঘণ্টার বেশি পুরনো সেশন ডেটা সরিয়ে দিতে একটি সিস্টেম জব (CleanupJobService) নির্দিষ্ট সময় অন্তর রান করে।
  • সারি সংক্রান্ত সীমা: অতিরিক্ত স্টোরেজ ব্যবহার প্রতিরোধ করতে, সেশন প্রোভাইডার টেবিল সর্বাধিক ৫০০০ সারিতে সীমাবদ্ধ করা হয়েছে। টেবিলটি এই সাইজে পৌঁছে গেলে, নতুন সেশন ডেটা যোগ করার আগে সিস্টেম অটোমেটিক সবচেয়ে পুরনো সারি বাদ দিয়ে দেয়।
  • স্থায়িত্ব: সেশন ডেটা ক্ষণস্থায়ী হয়। ক্লায়েন্ট অ্যাপকে প্রাপ্য পরিচিতি ডেটা পাওয়ার সাথে সাথেই সেভ করে রাখতে হবে।

অনুমতি

সেশন প্রদানকারীকে লেখার অ্যাক্সেস দিতে android.permission.MANAGE_CONTACTS_PICKER_SESSION অনুমতি প্রয়োজন, যা Android পরিচিতি পিকার প্যাকেজের জন্য সীমাবদ্ধ।

কাস্টমাইজেশন ও সম্মতি

পার্টনাররা ফন্ট ও রঙের মতো ভিজ্যুয়াল এলিমেন্ট কাস্টমাইজ করতে পারবেন, কিন্তু ইমপ্লিমেন্টেশনকে Android CDD-এর ৩.১৮.২ সিস্টেম পরিচিতি বাছাইকারী বিভাগ মেনে চলতে হবে।

যাচাইকরণ

পার্টনারদের অবশ্যই কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) এবং Google Mobile Services টেস্ট স্যুট (GTS) উভয়ই ব্যবহার করে তাদের বাস্তবায়ন যাচাই করতে হবে।