Можно предоставить файл из локального хранилища приложений в другое приложение (например, вложение электронной почты), предоставив временные разрешения для чтения этого файла как части общего доступа намерение.
Шаг 1: Добавление поставщика файла на ваш AndroidManifest.xml:
<applicaton>
....
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.your.package.name.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
</application>
Шаг 2: Добавить файл Рез/XML/filepaths.xml с путем к файлу в локальном хранилище приложений, которые вы хотите поделиться:
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="myFolder" path="Folder/"/>
</paths>
Шаг 3: в своем коде Java создать общий доступ к файлам намерения:
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Your subject");
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Your message");
ArrayList<Uri> uris = new ArrayList<Uri>();
String shareName = new String(pathToFile + filename);
File shareFile = new File(shareName);
Uri contentUri = FileProvider.getUriForFile(context, "com.your.package.name.fileprovider", shareFile);
uris.add(contentUri);
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
// Grant temporary read permission to the content URI
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
String msgStr = "Share...";
startActivity(Intent.createChooser(shareIntent, msgStr));
Если Y ou есть какие-либо проблемы с этим, см. документы здесь https://developer.android.com/training/secure-file-sharing/share-file.html для получения дополнительной информации.
http: // stackoverflow.com/questions/587917/try-to-attach-a-file-from-sd-card-to-email – KOTIOS
Можно ли просмотреть файл по электронной почте? – user1140237
@ Stacks28. Проблема в том, что я занимаюсь актуализацией из внутреннего хранилища. SD не поможет мне – Snake