Android: Otp autoread не работает после публикации приложения в playstore - PullRequest
0 голосов
/ 09 ноября 2019

Я делаю приложение andorid, содержащее sms autoread functions.its, прекрасно работающее в сборках отладки и выпуска (подписанный apk). Но когда вы загружаете его в playstore, оно не работает. Я думаю, это из-за хеш-ключа. и выпуск хеш-ключей обновляется на сервере.

Я пробовал метод преобразования хеш-ключей из сертификата подписи приложения (не знаю, правильный ли это метод). Как сгенерировать хэш-ключ 11 символов для Sms Retriever с подписью Google App

Но после запуска первой команды выдается сообщение об ошибке: - "открытые ключи в ответе и хранилище ключей не совпадают"

Ниже приведен код: -

   class RegisterActivity : AppCompatActivity(), 
   GoogleApiClient.ConnectionCallbacks,
    GoogleApiClient.OnConnectionFailedListener, 
     SMSBroadcastReciever.Listener {
   override fun onSMSReceived(otp: String) {
    if (smsBroadcast != null) {
  LocalBroadcastManager.getInstance(this).unregisterReceiver(smsBroadcast)
    }

    et1.setText(otp[0].toString())
    et2.setText(otp[1].toString())
    et3.setText(otp[2].toString())
    et4.setText(otp[3].toString())
    et4.setSelection(et4.text!!.length);
    Log.e("OTP Received", otp)
}

override fun onTimeOut() {

}
     override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    setContentView(R.layout.activity_otp)



    listOf(et1, et2, et3, et4).setOTPListeners()
    et1.requestFocus()
    vm = ViewModelProviders.of(this).get(RegisterVM::class.java)

    registerObservers(vm!!)
    otpVerifyBtn.setOnClickListener {
        hideKeyboard()
        submitOtp(vm!!)
    }
    mCredentialsApiClient = GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)

            .addApi(Auth.CREDENTIALS_API)
            .build()

    startSMSListener()

    smsBroadcast.injectListener(this)
    val intentFilter = IntentFilter()
    intentFilter.addAction(SmsRetriever.SMS_RETRIEVED_ACTION)


    applicationContext.registerReceiver(smsBroadcast, intentFilter)
    val mobNum = intent.getStringExtra(IntentKeys.MOBILE_NUMBER) ?: ""
    mobileNumberTV.text = getString(R.string.please_type_verification) + " 
   " + mobNum
  }
  private fun startSMSListener() {

    val client = SmsRetriever.getClient(this /* context */)
    val task = client.startSmsRetriever()
    task.addOnSuccessListener {

    }

    task.addOnFailureListener {

    }
}

@SuppressLint("LongLogTag")
private fun requestHint() {
    val hintRequest = HintRequest.Builder()
            .setPhoneNumberIdentifierSupported(true)
            .build()

    val intent = Auth.CredentialsApi.getHintPickerIntent(
            mCredentialsApiClient, hintRequest)

    try {
        startIntentSenderForResult(intent.intentSender,
                RC_HINT, null, 0, 0, 0)
    } catch (e: Exception) {
        Log.e("Error In getting Message", e.message)
    }

}

Приложение отлично работает при отладке и подписи apk builds.но не работает после публикации в playstore.Может кто-нибудь помочь мне найти ответ ???

...