Android KeyguardManager не возвращает никакого результата - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь внедрить 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.

1 Ответ

0 голосов
/ 28 августа 2018

Я нашел ответ после 2 часов отладки! Это происходило потому, что я использовал RESULT_OK константу как private. Как только я обнародовал это, мой KeyManager работал правильно! Я предполагаю, что система воспринимала это как 0 и, следовательно, ничего не возвращала к активности:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...