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

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

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

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

তুমি শুরু করার আগে

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

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

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

  apply plugin: 'com.android.application'

  ...

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

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

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

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

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