Поддержка Gmail для вложения файлов из приложения Android - PullRequest
1 голос
/ 22 марта 2019

Я прочитал все подобные посты в отношении отправки вложения из внутренней памяти с помощью приложения GMAIL.Я реализовал предложение поставщика контента и до сих пор не могу получить вложение для фактической отправки с использованием GMAIL.

При передаче намерения все выглядит так, как будто оно работает, файл просто удаляется при отправке, а получатель не видит вложений.Этот код отлично работает на родном почтовом приложении Android.

Любые предложения или комментарии приветствуются.

Манифест Android:

<provider
android:authorities="com.myapp.fileprovider"
            android:name="android.support.v4.content.FileProvider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths"/>
</provider>

file_paths.xml:

 <paths xmlns:android="http://schemas.android.com/apk/res/android">
    <files-path name="/data/user/0/com.myapp/files" path="."/>
 </paths>

java:

ShareButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        File fileToSend = new File("");
        File dir = getFilesDir();
        File[] subFiles = dir.listFiles();
        if (subFiles != null) {
            for (File file : subFiles) {
                if (file.getName().equals(curveChosen)) {
                    fileToSend = file;
                }
            }
        }
        File Path = new File(view.getContext().getFilesDir(),"");
        File newFile = new File(Path,fileToSend.getName());
        Uri contentUri = FileProvider.getUriForFile(view.getContext(),"com.myapp.fileprovider", newFile);

        Intent sendIntent = new Intent(Intent.ACTION_SEND);
        sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        sendIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
        sendIntent.setType("text/plain");
        sendIntent.putExtra(Intent.EXTRA_STREAM, contentUri);
        sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Email Subject");
        sendIntent.putExtra(Intent.EXTRA_TEXT,"Email Text");
        startActivity(Intent.createChooser(sendIntent,"Select Email Application"));
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...