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

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

ফোন নম্বর ইঙ্গিত ব্যবহার করার সুবিধাগুলি নিচে দেওয়া হল:

  • অনুমতির জন্য অতিরিক্ত কোনও অনুরোধের প্রয়োজন নেই
  • ব্যবহারকারীকে ম্যানুয়ালি ফোন নম্বর টাইপ করতে হয় না
  • কোনও 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);
              }
          }
  });