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

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

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

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

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

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

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

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

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

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

  apply plugin: 'com.android.application'

  ...

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

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