Я пытаюсь внедрить KeyManager в мое приложение. Когда требуется авторизованное действие, пользователю предлагается шаблон разблокировки. Я наблюдаю результат этого в своей деятельности и, основываясь на результате, приступаю к дальнейшим действиям. Ниже приведен код, который я использую,
private const val RESULT_OK = 99
val km = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
val i = km.createConfirmDeviceCredentialIntent("Name", "Something")
i?.let { ind ->
startActivityForResult(ind, RESULT_OK)
// startActivityForResult(Intent(this@LoginActivity, AnotherActivity::class.java), RESULT_OK) //This works
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
Log.i("TAG======", requestCode.toString() + "--" + resultCode.toString())
}
Всякий раз, когда я использую startActivityForResult(ind, RESULT_OK)
, onActivityResult не вызывается, но когда я использовал любое другое действие, такое как startActivityForResult(Intent(this@LoginActivity, AnotherActivity::class.java), RESULT_OK)
, onActivityResult вызывается после завершения действия. Я что-то пропустил? Я тестирую это на физическом устройстве (OnePlus 5t) под управлением Android 8.1.