Pick Первый номер мобильного телефона автоматически HintRequest android - PullRequest
0 голосов
/ 12 февраля 2020

Я хочу выбрать первый номер телефона автоматически из HintRequest android.

Есть ли какое-либо возможное решение для этого?

есть ли какое-либо решение, пользователь не может закрыть диалог HintRequest без выбора хотя бы один номер мобильного телефона?

check this screenshot

1 Ответ

0 голосов
/ 12 февраля 2020
// 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)
                    }
                }
            }
...