ফোন নম্বর সংক্রান্ত ইঙ্গিত

Google Play পরিষেবা দ্বারা পরিচালিত ফোন নম্বর হিন্ট API, ব্যবহারকারীর (সিম কার্ড ভিত্তিক) ফোন নম্বরকে হিন্ট হিসেবে দেখানোর একটি সহজ উপায় প্রদান করে।

ফোন নম্বর হিন্ট ব্যবহার করার সুবিধাগুলির মধ্যে নিম্নলিখিত বিষয়গুলি অন্তর্ভুক্ত:

  • অতিরিক্ত অনুমতির অনুরোধ করার প্রয়োজন নেই
  • ব্যবহারকারীকে ম্যানুয়ালি ফোন নম্বর টাইপ করতে হয় না
  • কোনও Google অ্যাকাউন্টের প্রয়োজন নেই
  • সরাসরি সাইন-ইন বা সাইন-আপ ওয়ার্কফ্লোয়ের সাথে যুক্ত নয়
  • অটোফিলের তুলনায় Android ভার্সনের জন্য আরও বেশি সহায়তা

এটি কীভাবে কাজ করে

ফ্লো শুরু করার জন্য ফোন নম্বর হিন্ট API একটি PendingIntent ব্যবহার করে। PendingIntent লঞ্চ করা হয়ে গেলে, ব্যবহারকারীকে সব (সিম কার্ড ভিত্তিক) ফোন নম্বরের তালিকা সহ একটি UI দেখানো হবে। ব্যবহারকারী তারপরে যে ফোন নম্বর ব্যবহার করতে চান সেটি বেছে নিতে পারেন অথবা ফ্লো বাতিল করতে পারেন। বেছে নেওয়া ফোন নম্বরটি ডেভেলপারকে Intent থেকে রিট্রিভ করার জন্য উপলভ্য করা হবে।

ফোন নম্বর সংক্রান্ত ইঙ্গিত UI ও সেটিংস।
ছবি ১. ফোন নম্বর সংক্রান্ত ইঙ্গিত UI ও সেটিংস

আপনার অ্যাপ প্রস্তুত করতে, নিম্নলিখিত বিভাগে উল্লেখ করা ধাপগুলি সম্পূর্ণ করুন।

আপনার অ্যাপ কনফিগার করা

আপনার মডিউলের Gradle বিল্ড ফাইলে, ফোন নম্বর হিন্ট API-এর জন্য Google Play পরিষেবা ডিপেন্ডেন্সি যোগ করুন, যা সাধারণত app/build.gradle:

  apply plugin: 'com.android.application'

  ...

  dependencies {
    implementation 'com.google.android.gms:play-services-auth:22.0.0'
  }

GetPhoneNumbeHintIntentRequest অবজেক্ট তৈরি করুন

প্রদত্ত GetPhoneNumberHintIntentRequest.Builder() পদ্ধতি ব্যবহার করে GetPhoneNumberHintIntentRequest অবজেক্ট তৈরি করার মাধ্যমে শুরু করুন। এই অনুরোধ অবজেক্টটি তারপর Intent পেতে ব্যবহার করা যেতে পারে যাতে ফোন নম্বর হিন্ট ফ্লো শুরু করা যায়।

Kotlin

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

জাভা

GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();

ফোন নম্বর হিন্টের জন্য অনুরোধ করা

ফোন নম্বর হিন্ট ফ্লো শুরু করার জন্য SignInClient.getPhoneNumberHintIntent()-এ কল করুন, আগের GetPhoneNumberHintIntentRequest অবজেক্ট পাস করুন, যাতে PendingIntent পাওয়া যায়।

Kotlin

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 পাস করুন।

Kotlin

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);
              }
          }
  });