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

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 स्थिति में होता है, तब डायलर को PhoneAccountSuggestion से मिली जानकारी का इस्तेमाल करके EXTRA_SUGGESTED_PHONE_ACCOUNTS को मैनेज करना होता है.

सेवा बंद करना

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

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

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

सत्यापन

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