फ़ोन नंबर का संकेत

फ़ोन नंबर हिंट एपीआई, 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 पाया जा सकता है.

KotlinJava
val request: GetPhoneNumberHintIntentRequest = GetPhoneNumberHintIntentRequest.builder().build()
GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();

फ़ोन नंबर के बारे में जानकारी का अनुरोध करना

फ़ोन नंबर के सुझाव वाले फ़्लो को शुरू करने के लिए, PendingIntent को वापस पाने के लिए, पिछले GetPhoneNumberHintIntentRequest ऑब्जेक्ट को पास करते हुए, SignInClient.getPhoneNumberHintIntent() को कॉल करें.

KotlinJava
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")
}
ActivityResultLauncher phoneNumberHintIntentResultLauncher = ...

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 पर पास करें.

KotlinJava
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")
      }
  }
ActivityResultLauncher phoneNumberHintIntentResultLauncher =
  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);
              }
          }
  });