Я делаю приложение 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.Может кто-нибудь помочь мне найти ответ ???