फ़ोन नंबर हिंट एपीआई, Google Play services की लाइब्रेरी है. इसका इस्तेमाल करके, उपयोगकर्ता के (सिम-आधारित) फ़ोन नंबर को हिंट के तौर पर आसानी से दिखाया जा सकता है.
फ़ोन नंबर के सुझाव की सुविधा का इस्तेमाल करने के फ़ायदे:
- अनुमति के लिए कोई और अनुरोध करने की ज़रूरत नहीं है
- इससे उपयोगकर्ता को फ़ोन नंबर मैन्युअल तरीके से टाइप करने की ज़रूरत नहीं पड़ती
- इसके लिए Google खाते की ज़रूरत नहीं है
- सीधे तौर पर साइन इन/अप वर्कफ़्लो से जुड़ा नहीं है
- ऑटोमैटिक भरने की सुविधा की तुलना में, Android के ज़्यादा वर्शन के साथ काम करना
शुरू करने से पहले
अपने ऐप्लिकेशन को तैयार करने के लिए, नीचे दिए गए सेक्शन में दिया गया तरीका अपनाएं.
अपने ऐप्लिकेशन को कॉन्फ़िगर करना
अपने मॉड्यूल की Gradle बिल्ड फ़ाइल में, फ़ोन नंबर के सुझाव देने वाले एपीआई के लिए Google Play services की डिपेंडेंसी जोड़ें. आम तौर पर, यह app/build.gradle
होती है:
apply plugin: 'com.android.application'
...
dependencies {
implementation 'com.google.android.gms:play-services-auth:21.3.0'
}
यह कैसे काम करता है
फ़ोन नंबर के सुझाव देने वाले एपीआई, फ़्लो शुरू करने के लिए PendingIntent
का इस्तेमाल करता है. PendingIntent लॉन्च होने के बाद, उपयोगकर्ता को एक यूज़र इंटरफ़ेस (यूआई) दिखेगा. इसमें, सिम पर आधारित सभी फ़ोन नंबर की सूची होगी. इसके बाद, उपयोगकर्ता अपनी पसंद का फ़ोन नंबर चुन सकता है या प्रोसेस को रद्द कर सकता है.
इसके बाद, चुने गए फ़ोन नंबर को डेवलपर के लिए उपलब्ध कराया जाएगा, ताकि वह Intent
से उसे वापस पा सके.

GetPhoneNumbeHintIntentRequest ऑब्जेक्ट बनाना
दिए गए GetPhoneNumberHintIntentRequest.Builder()
तरीके का इस्तेमाल करके, GetPhoneNumberHintIntentRequest
ऑब्जेक्ट बनाकर शुरुआत करें. इसके बाद, इस अनुरोध ऑब्जेक्ट का इस्तेमाल करके, फ़ोन नंबर के सुझाव वाले फ़्लो को शुरू करने के लिए Intent
पाया जा सकता है.
val request: GetPhoneNumberHintIntentRequest = GetPhoneNumberHintIntentRequest.builder().build()
GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();
फ़ोन नंबर के बारे में जानकारी का अनुरोध करना
फ़ोन नंबर के सुझाव वाले फ़्लो को शुरू करने के लिए, PendingIntent
को वापस पाने के लिए, पिछले GetPhoneNumberHintIntentRequest
ऑब्जेक्ट को पास करते हुए, SignInClient.getPhoneNumberHintIntent()
को कॉल करें.
val phoneNumberHintIntentResultLauncher = ... Identity.getSignInClient(activity) .getPhoneNumberHintIntent(request) .addOnSuccessListener { result: PendingIntent -> try { phoneNumberHintIntentResultLauncher.launch( IntentSenderRequest.Builder(result).build() ) } catch (e: Exception) { Log.e(TAG, "Launching the PendingIntent failed") } } .addOnFailureListener { Log.e(TAG, "Phone Number Hint failed") }
ActivityResultLauncherphoneNumberHintIntentResultLauncher = ... Identity.getSignInClient(activity) .getPhoneNumberHintIntent(request) .addOnSuccessListener( result -> { try { phoneNumberHintIntentResultLauncher.launch(result.getIntentSender()); } catch(Exception e) { Log.e(TAG, "Launching the PendingIntent failed", e); } }) .addOnFailureListener(e -> { Log.e(TAG, "Phone Number Hint failed", e); });
फ़ोन नंबर वापस पाना
फ़ोन नंबर वापस पाने के लिए, Intent
को SignInClient.getPhoneNumberFromIntent
पर पास करें.
val phoneNumberHintIntentResultLauncher = registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) { result -> try { val phoneNumber = Identity.getSignInClient(activity).getPhoneNumberFromIntent(result.data) } catch(e: Exception) { Log.e(TAG, "Phone Number Hint failed") } }
ActivityResultLauncherphoneNumberHintIntentResultLauncher = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback () { @Override public void onActivityResult(ActivityResult result) { try { String phoneNumber = Identity.getSignInClient(activity).getPhoneNumberFromIntent(result.getData()); } catch { Log.e(TAG, "Phone Number Hint failed", e); } } });