// Example From Kotlin
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
implementation 'com.google.android.gms:play-services-auth-api-phone:17.3.0'
implementation 'com.google.android.gms:play-services-base:17.1.0'
implementation 'com.google.android.gms:play-services-identity:17.0.0'
implementation 'com.google.android.gms:play-services-auth:17.0.0'
// Class : AutoDetectMobileNo
class AutoDetectMobileNo internal constructor(context: Context) {
private var googleApiClient: GoogleApiClient? = null
private val context: Context
private val appCompatActivity: AppCompatActivity = context as AppCompatActivity
fun requestPhoneNoHint() {
googleApiClient = GoogleApiClient.Builder(context)
.enableAutoManage(
appCompatActivity
) { }
.addApi(Auth.CREDENTIALS_API)
.build()
val hintRequest = HintRequest.Builder()
.setHintPickerConfig(
CredentialPickerConfig.Builder()
.setShowCancelButton(true)
.build()
)
.setPhoneNumberIdentifierSupported(true)
.build()
val intent =
Auth.CredentialsApi.getHintPickerIntent(googleApiClient, hintRequest)
try {
appCompatActivity.startIntentSenderForResult(
intent.intentSender,
RC_HINT,
null,
0,
0,
0
)
} catch (e: Throwable) {
Log.e("PHONE_HINT", "Could not start hint picker Intent", e)
}
}
fun getPhoneNo(data: Intent): String {
val cred: Credential =
data.getParcelableExtra(Credential.EXTRA_KEY)!!
return cred.id
}
interface Callback
companion object {
const val RC_HINT = 1000
}
init {
this.context = appCompatActivity.applicationContext
}
}
// On Your Activity / Fragment
val autoDetectMobileNo = AutoDetectMobileNo(this)
autoDetectMobileNo!!.requestPhoneNoHint()
override fun onActivityResult(
requestCode: Int,
resultCode: Int,
data: Intent?
) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == AutoDetectMobileNo.RC_HINT) {
if (resultCode == Activity.RESULT_OK) {
val mPhoneNumber = autoDetectMobileNo!!.getPhoneNo(data)
}
}
}