Проблема отправки сообщения Gmail с несколькими текстовыми вложениями в приложении Android - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь отправить электронное письмо с файлами, которые хранятся во внешнем хранилище в виде вложений.Они хранятся в / storage / emulated / 0 / data /.Когда я пытаюсь отправить их в Gmail, они отображаются на экране «Написать письмо», но не отображаются в полученном сообщении.Если я выберу общий доступ к файлам на Google Диске, а не в Gmail, проблем не возникнет, они загружаются нормально.Мне странно, что один будет работать, но не другой.Кто-нибудь знает, почему это происходит?Вот то, что я предположил бы соответствующим кодом.

в MainActivity.java

public void onClickEmail(View view) {
    Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
    emailIntent.setType("text/plain");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, EMAIL_RECIPIENT);
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, EMAIL_SUBJECT);
    emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

    ArrayList<Uri> uris = new ArrayList<Uri>();

    //convert from paths to Android friendly Parcelable Uri's
    for (String filename : filenames)
    {
        File fileIn = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+FOLDER_NAME, filename);
        Uri u = FileProvider.getUriForFile(MainActivity.this, MainActivity.this.getApplicationContext().getPackageName() + ".provider", fileIn);
        uris.add(u);
    }

    emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

    try {
        startActivity(Intent.createChooser(emailIntent, "Send mail..."));
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(MainActivity.this, "There is no email client installed.", Toast.LENGTH_LONG).show();
    }
}

в AndroidManifest.xml

    <uses-feature android:name="android.hardware.usb.host" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <provider
            android:name=".GenericFileProvider"
            android:authorities="jackreuter.biobot.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"/>
        </provider>

    </application>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...