Android:Otp autoread在向playstore发布应用程序后不起作用
我正在做一个包含sms自动读取功能的android应用程序。它在调试和发布(已签名的apk)版本中工作得非常好。但是当它上载到playstore时,它就不工作了。我想这是因为散列键。服务器中更新了开发和发布散列键 我尝试了应用程序签名证书的keyhash转换方法(不知道是否正确) 但在运行第一个命令后,错误为:-“应答中的公钥和密钥库不匹配” 代码如下:-Android:Otp autoread在向playstore发布应用程序后不起作用,android,api,sms,one-time-password,Android,Api,Sms,One Time Password,我正在做一个包含sms自动读取功能的android应用程序。它在调试和发布(已签名的apk)版本中工作得非常好。但是当它上载到playstore时,它就不工作了。我想这是因为散列键。服务器中更新了开发和发布散列键 我尝试了应用程序签名证书的keyhash转换方法(不知道是否正确) 但在运行第一个命令后,错误为:-“应答中的公钥和密钥库不匹配” 代码如下:- class RegisterActivity : AppCompatActivity(), GoogleApiClient.C
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版本中运行良好。但在发布到playstore后无法运行。有人能帮我找到答案吗?GoogleapClient不推荐使用,抱歉,这不是原因。最后,我记录了密钥哈希并进行了更新。