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

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 Workspace खाते में मौजूद सभी संपर्कों के लिए, ऑफ़िस के सिम का इस्तेमाल करे, तो सेवा को फ़ोन खाते को REASON_USER_SET के तौर पर मार्क करना चाहिए. साथ ही, shouldAutoSelect को 'सही है' के तौर पर सेट करना चाहिए, ताकि डायलर, सिम चुनने के डायलॉग को बायपास कर सके और फ़ोन खाते का इस्तेमाल करके अपने-आप कॉल कर सके.

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

डायलर

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

सेवा बंद करना

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

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

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

Validation

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