फ़ोन खाते का सुझाव

Android 10 में, फ़ोन खाते के सुझाव की सेवा की मदद से, कॉल करते समय उपयोगकर्ताओं को फ़ोन खातों के सुझाव दिखाए जा सकते हैं. उदाहरण के लिए, जिन उपयोगकर्ताओं के डिवाइस में एक से ज़्यादा सिम होते हैं और इंटरनेट नेटवर्क के अंदर कॉल करने के लिए कम शुल्क लिया जाता है उनके लिए, यह सेवा पहले कॉल पाने वाले व्यक्ति के मोबाइल और इंटरनेट सेवा देने वाली कंपनी की पहचान करती है. इसके बाद, कॉल पाने वाले व्यक्ति के इंटरनेट नेटवर्क पर मौजूद सिम का इस्तेमाल करने का सुझाव देती है.

फ़ोन में खाता जोड़ने के सुझाव की सुविधा चालू करना ज़रूरी नहीं है. इसे Android 10 या इसके बाद के वर्शन वाले डिवाइसों पर चालू किया जा सकता है.

लागू करना

फ़ोन खाते के सुझावों को लागू करने के लिए, /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

सुझाव देने के लिए, PhoneAccountSuggestion क्लास का इस्तेमाल करें. उदाहरण के लिए, अगर सेवा यह पता लगाती है कि जिस व्यक्ति को कॉल किया जा रहा है वह डिवाइस में मौजूद किसी सिम कार्ड की मोबाइल और इंटरनेट सेवा देने वाली कंपनी का ग्राहक है, तो सेवा को फ़ोन खाते को REASON_INTRA_CARRIER के साथ मार्क करना चाहिए. इसके बाद, इस जानकारी को डायलर में उपयोगकर्ता को बताया जा सकता है.

उदाहरण के लिए, अगर उपयोगकर्ता ने डिवाइस को, काम से जुड़े Google खाते में मौजूद सभी संपर्कों के लिए, काम से जुड़े सिम का इस्तेमाल करने के लिए कॉन्फ़िगर किया है, तो सेवा को फ़ोन खाते को REASON_USER_SET से मार्क करना चाहिए. साथ ही, shouldAutoSelect को 'सही' पर सेट करना चाहिए, ताकि डायलर, चुनने के लिए दिए गए डायलॉग को बायपास कर सके और फ़ोन खाते का इस्तेमाल करके कॉल अपने-आप कर सके.

अन्य सुझावों के बारे में जानकारी के लिए, PhoneAccountSuggestion देखें.

Dialer

जब कॉल STATE_SELECT_PHONE_ACCOUNT स्टेटस में आता है, तो डायलर को EXTRA_SUGGESTED_PHONE_ACCOUNTS को मैनेज करने के लिए, PhoneAccountSuggestion की जानकारी का इस्तेमाल करना चाहिए.

सेवा बंद करना

किसी खास कैरियर के लिए, इसे अपने हिसाब से लागू करने के लिए, setComponentEnabledSetting का इस्तेमाल करके सेवा को चालू या बंद किया जा सकता है. बंद होने पर, सेवा के बारे में क्वेरी नहीं की जाती.

सिस्टम यूज़र इंटरफ़ेस (यूआई) लागू करना

लागू करने के तरीके के आधार पर, सिस्टम के यूज़र इंटरफ़ेस (यूआई) में बदलाव करना पड़ सकता है. उदाहरण के लिए, उपयोगकर्ताओं को यह बताने की अनुमति देने के लिए कि किसी खास संपर्क को किए जाने वाले सभी कॉल, किसी खास फ़ोन खाते से किए जाते हैं, आपको डिवाइस के लिए पसंद के मुताबिक सेट अप फ़्लो और सेटिंग यूज़र इंटरफ़ेस (यूआई) लागू करना होगा.

पुष्टि करें

लागू करने की पुष्टि करने के लिए, ये सीटीएस टेस्ट चलाएं: