অ্যান্ড্রয়েড ১০-এর ফোন অ্যাকাউন্ট সাজেশন সার্ভিসটি কল করার সময় ব্যবহারকারীদের বিভিন্ন ফোন অ্যাকাউন্টের পরামর্শ দেখানোর সুযোগ দেয়। উদাহরণস্বরূপ, যেসব ব্যবহারকারীর ডিভাইসে একাধিক সিম রয়েছে এবং একই নেটওয়ার্কের মধ্যে কলের জন্য কম রেট পাওয়া যায়, তাদের জন্য এই সার্ভিসটি প্রথমে অপর প্রান্তের ব্যক্তির ক্যারিয়ার শনাক্ত করে এবং তারপর অপর প্রান্তের ব্যক্তির নেটওয়ার্কের সাথে একই নেটওয়ার্কের সিম ব্যবহার করার পরামর্শ দেয়।
ফোন অ্যাকাউন্ট সাজেশন পরিষেবাটি ঐচ্ছিক এবং এটি অ্যান্ড্রয়েড ১০ বা তার উচ্চতর সংস্করণে চালিত ডিভাইসগুলিতে প্রয়োগ করা যেতে পারে।
বাস্তবায়ন
ফোন অ্যাকাউন্ট সাজেশন কার্যকর করতে, /system/priv-app/ -এ অবস্থিত একটি অ্যাপে একটি PhoneAccountSuggestionService সার্ভিস ইমপ্লিমেন্ট করুন। একাধিক PhoneAccountSuggestionService ইমপ্লিমেন্ট করা হলে সার্ভিসটি কোয়েরি করা হয় না। সার্ভিসটিকে অবশ্যই android.Manifest.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE পারমিশনটি ডিক্লেয়ার করতে হবে।
যখন কোনো ব্যবহারকারী এমন একটি আউটগোয়িং কল করেন যেখানে প্রাপকের জন্য ডিফল্ট আউটগোয়িং ফোন অ্যাকাউন্ট বা পছন্দের ফোন অ্যাকাউন্ট কোনোটিই সেট করা নেই, তখন টেলিকম পরিষেবাটি অ্যাকাউন্টগুলো সম্পর্কে তথ্য সংগ্রহ করার জন্য PhoneAccountSuggestionService এর সাথে বাইন্ড করে, onAccountSuggestionRequest(String number) কল করা হয় এবং আউটগোয়িং কল প্রক্রিয়াটি স্থগিত হয়ে যায়।
PhoneAccountSuggestionService অবশ্যই onAccountSuggestionRequest(String number) থেকে প্রাপ্ত নম্বরটি দিয়ে suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) কল করতে হবে।
যখন suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) কল করা হয়, তখন টেলিকম পরিষেবাটি প্রস্তাবিত ফোন অ্যাকাউন্টগুলির একটি তালিকা ফেরত দেয়। এরপর ব্যবহারকারীকে কল করার জন্য বেছে নেওয়ার সুবিধার্থে ডায়ালারকে অবশ্যই প্রস্তাবিত ফোন অ্যাকাউন্টগুলির তালিকাটি প্রদর্শন করতে হবে।
ফোন অ্যাকাউন্ট পরামর্শ
পরামর্শ দেওয়ার জন্য PhoneAccountSuggestion ক্লাসটি ব্যবহার করুন। উদাহরণস্বরূপ, যদি পরিষেবাটি নির্ধারণ করে যে প্রাপক ডিভাইসের সিমগুলোর একটির মতো একই ক্যারিয়ার ব্যবহার করছেন, তবে পরিষেবাটির উচিত ফোন অ্যাকাউন্টটিকে REASON_INTRA_CARRIER দিয়ে চিহ্নিত করা। এই তথ্যটি তখন ডায়লারের মাধ্যমে ব্যবহারকারীকে জানানো যেতে পারে।
উদাহরণস্বরূপ, এমন পরিস্থিতিতে যেখানে ব্যবহারকারী একটি কর্মক্ষেত্রের গুগল অ্যাকাউন্টের সমস্ত পরিচিতির জন্য কর্মক্ষেত্রের সিম ব্যবহার করতে ডিভাইসটি কনফিগার করেছেন, সেখানে পরিষেবাটির উচিত ফোন অ্যাকাউন্টটিকে REASON_USER_SET দিয়ে চিহ্নিত করা এবং shouldAutoSelect true সেট করা, যাতে ডায়ালারটি নির্বাচনের ডায়ালগটি এড়িয়ে গিয়ে স্বয়ংক্রিয়ভাবে সেই ফোন অ্যাকাউন্টটি ব্যবহার করে কল করতে পারে।
অন্যান্য পরামর্শের তথ্যের জন্য, PhoneAccountSuggestion দেখুন।
ডায়ালার
যখন কলটি STATE_SELECT_PHONE_ACCOUNT অবস্থায় প্রবেশ করে, তখন ডায়ালারকে অবশ্যই EXTRA_SUGGESTED_PHONE_ACCOUNTS পরিচালনা করার জন্য PhoneAccountSuggestion থেকে প্রাপ্ত তথ্য ব্যবহার করতে হবে।
পরিষেবাটি নিষ্ক্রিয় করুন
নির্দিষ্ট ক্যারিয়ারের জন্য আপনার ইমপ্লিমেন্টেশন কাস্টমাইজ করতে, আপনি setComponentEnabledSetting ব্যবহার করে সার্ভিসটি এনাবল বা ডিসেবল করতে পারেন। ডিসেবল করা থাকলে সার্ভিসটি কোয়েরি করা হয় না।
সিস্টেম UI বাস্তবায়ন
আপনার বাস্তবায়নের উপর নির্ভর করে সিস্টেম UI-তে পরিবর্তন আনার প্রয়োজন হতে পারে। উদাহরণস্বরূপ, ব্যবহারকারীদেরকে কোনো নির্দিষ্ট কন্ট্যাক্টে করা সমস্ত কল একটি নির্দিষ্ট ফোন অ্যাকাউন্ট থেকে করার সুযোগ দিতে হলে, আপনাকে ডিভাইসটির জন্য একটি কাস্টমাইজড সেটআপ ফ্লো এবং সেটিংস UI তৈরি করতে হবে।
বৈধতা
আপনার ইমপ্লিমেন্টেশন যাচাই করতে, নিম্নলিখিত CTS টেস্টগুলো চালান: