Android: Можно ли передать строку как текстовый файл через намерение? - PullRequest
1 голос
/ 10 июля 2020

Существует множество руководств о том, как сохранять строки в текстовые файлы и как обмениваться текстовыми файлами через намерение ( здесь пример последнего).

Но что если я хочу пропустить посредника и не сохранить мою строку в файловой системе? Есть ли способ предоставить строку в виде текстового файла через намерение без фактического сохранения ее в файловой системе? Типа через поток что ли? Чтобы уточнить, я не хочу, чтобы это было просто текстом; Я хочу, чтобы принимающее приложение считало, что это на самом деле файл.

1 Ответ

0 голосов
/ 10 июля 2020

Для этого нет ничего легкого. EXTRA_STREAM принимает content Uri. Вам нужно будет создать свой собственный ContentProvider, который обрабатывает openFile() и передает вашу строку через канал на основе ParcelFileDescriptor.

Этот провайдер демонстрирует эту технику. В моем случае я читаю актив и передаю его в потоковом режиме; в вашем случае вы просто должны передать свою строку (предположительно, как байты в кодировке UTF-8).

...