RegisterForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) всегда возвращает нулевые данныеJAVA

Программисты JAVA общаются здесь
Anonymous
RegisterForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) всегда возвращает нулевые данные

Сообщение Anonymous »

Я использую следующую функцию регистрации, чтобы вернуть результаты

Код: Выделить всё

        registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) { result ->
if (result.resultCode == RESULT_OK) {
result.data?.getStringExtra(EXTRA_RENAME)?.let {
И я использую эту функцию, чтобы дать пользователям разрешение на редактирование файлов

Код: Выделить всё

                val intentSender = when {
Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> {
MediaStore.createWriteRequest(
context.contentResolver,
listOf(it)
).intentSender
}

Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q -> {
val recoverableSecurityException = e as? RecoverableSecurityException
recoverableSecurityException?.userAction?.actionIntent?.intentSender
}

else -> null
}
intentSender?.let { sender ->
val intent = Intent().apply {
Bundle().also { extras ->
extras.putString(EXTRA_RENAME, newName)
putExtras(extras)
}
}
launcher?.launch(IntentSenderRequest.Builder(sender).setFillInIntent(intent).build())
}
Однако полученные данные всегда имеют значение NULL.
Я уверен, что функция регистрации была запущена снова, но данные всегда имеют значение NULL.

Подробнее здесь: https://stackoverflow.com/questions/788 ... rforresult

Вернуться в «JAVA»