Я пытаюсь создать сборщик файлов для подключения к службе облачного хранилища. У меня нет проблем с прикреплением файлов к другим приложениям, и даже Gmail успешно возвращает результат моей работы и показывает правильную миниатюру на основе установленных URI/клипов.Ответ на Intent.ACTION_GET_CONTENT для вложения Gmail не удается при отправке электронной почты
Проблема в том, что когда вы действительно отправляетесь на отправку электронной почты, Gmail уведомляет пользователя «Не удается отправить вложение» и отправляет электронное письмо без вложения.
Я не знаю, что я делаю неправильно. Я попытался настроить URI как Intent.setData(), а также использовать URI и установить Intent.setClipData(). Кроме того, я попытался явно включить флаг для FLAG_GRANT_READ_URI_PERMISSION. Ни одна из этих проблем не решает проблему.
Любой, кто имеет представление о том, что может пойти не так, пожалуйста, звоните. Другие поставщики облачных услуг, похоже, не имеют проблем при прикреплении их контента через этот поток, поэтому я просто не знаю, что я делаю неправильно.
Мой код примерно выглядит следующим образом прямо сейчас, и по-прежнему не будет работать с Gmail:
Intent result = new Intent();
result.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
result.setData(uri);
if (getActivity().getIntent().getBooleanExtra(Intent.EXTRA_ALLOW_MULTIPLE, false)) {
String mime = Utils.getMimeType(document);
result.setClipData(new ClipData(document.getSimpleName(), new String[]{mime}, new ClipData.Item(uri)));
result.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
result.putExtra(Intent.EXTRA_STREAM, uri);
}
getActivity().setResult(Activity.RESULT_OK, result);
getActivity().finish();
Какова ценность 'uri'? Указывает ли это на 'ContentProvider', который вы написали, на котором вы установили' android: grantUriPermissions'? – CommonsWare