ফোন নম্বর ইঙ্গিত

ফোন নম্বর হিন্ট এপিআই, গুগল প্লে সার্ভিসেস দ্বারা চালিত একটি লাইব্রেরি, ব্যবহারকারীর (সিম-ভিত্তিক) ফোন নম্বরগুলোকে ইঙ্গিত হিসেবে দেখানোর একটি সহজ উপায় প্রদান করে।

ফোন নম্বর হিন্ট ব্যবহারের সুবিধাগুলো নিম্নরূপ:

  • অতিরিক্ত কোনো অনুমতির অনুরোধের প্রয়োজন নেই।
  • ব্যবহারকারীকে ম্যানুয়ালি ফোন নম্বর টাইপ করার প্রয়োজনীয়তা দূর করে।
  • কোন গুগল অ্যাকাউন্টের প্রয়োজন নেই
  • সাইন-ইন বা সাইন-আপ কার্যপ্রবাহের সাথে সরাসরি যুক্ত নয়
  • অটোফিলের তুলনায় অ্যান্ড্রয়েড সংস্করণগুলির জন্য আরও ব্যাপক সমর্থন

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

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

ফোন নম্বর ইঙ্গিত UI এবং সেটিংস।
চিত্র ১. ফোন নম্বর ইঙ্গিত UI এবং সেটিংস

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

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

আপনার মডিউলের গ্রেডল বিল্ড ফাইলে (যা সাধারণত app/build.gradle হয়ে থাকে) ফোন নম্বর হিন্ট এপিআই-এর জন্য গুগল প্লে সার্ভিসেস ডিপেন্ডেন্সি যোগ করুন:

  apply plugin: 'com.android.application'

  ...

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

একটি 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")
}

জাভা

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

ফোন নম্বরটি পুনরুদ্ধার করা হচ্ছে

ফোন নম্বরটি পাওয়ার জন্য SignInClient.getPhoneNumberFromIntentIntent পাস করুন।

কোটলিন

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