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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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