powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Отправка письма с вложением через GMail
9 сообщений из 9, страница 1 из 1
Отправка письма с вложением через GMail
    #39703106
Slon747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создается письмо в GMail с вложением из файла html.
На более поздних версиях андроида перестала работать отправка с вложением.
Этот код на Android 4 успешно создает письмо в GMail и вкладывает вложение:
Код: java
1.
2.
3.
4.
5.
6.
7.
        if (sdFile == null)
            return;
 
        Uri address = Uri.parse("mailto:");
        Intent intent = new Intent(Intent.ACTION_VIEW, address);
        intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(sdFile));
        activity.startActivity(intent);


На 8-м андроиде вложения в почтовой программе нет.
Подскажите, пожалуйста, что нужно доработать?
...
Рейтинг: 0 / 0
Отправка письма с вложением через GMail
    #39703781
Slon747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде бы нужно передавать файл через FileProvider.
Указал в манифесте:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
        <provider
                android:name="android.support.v4.content.FileProvider"
                android:authorities="com.my_program.fileprovider"
                android:grantUriPermissions="true"
                android:exported="false">
            <meta-data
                    android:name="android.support.FILE_PROVIDER_PATHS"
                    android:resource="@xml/filepaths" />
        </provider>



В ресурсах filepaths.xml:
Код: xml
1.
2.
3.
<paths>
<external-path name="name" path="." />
</paths>



Передаю файл, который лежит в корневой папке "AT" внешней памяти:
Код: java
1.
2.
3.
4.
        Uri address = Uri.parse("mailto:");
        Intent intent = new Intent(Intent.ACTION_VIEW, address);
        intent.putExtra(Intent.EXTRA_STREAM, FileProvider.getUriForFile(activity, "com.my_program.fileprovider", sdFile));
        activity.startActivity(intent);



Но вложения все равно нет.
...
Рейтинг: 0 / 0
Отправка письма с вложением через GMail
    #39703958
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slon747Но вложения все равно нет.
Помимо прав в манифесте (есть ведь все необходимые?), можно еще смотреть в логкат, где наверняка есть текст ошибки.
Я-бы первым делом туда смотрел.
...
Рейтинг: 0 / 0
Отправка письма с вложением через GMail
    #39703984
Slon747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanПомимо прав в манифесте (есть ведь все необходимые?)

Думаю, без прав в манифесте приложение бы вылетало.
В манифесте имеется
Код: xml
1.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


в 4-м и 6-м андроиде отрабатывает нормально даже без FileProvider.

wadmanможно еще смотреть в логкат, где наверняка есть текст ошибки.
Я-бы первым делом туда смотрел.
Проверил, установив фильтр на приложение.
При выполнении последних 2-х строк logcat ничего не добавляет в логи.
...
Рейтинг: 0 / 0
Отправка письма с вложением через GMail
    #39703985
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slon747При выполнении последних 2-х строк logcat ничего не добавляет в логи.
А там и нет обращения к файлу. Оно дальше, когда активность запустится и начнет работать.
...
Рейтинг: 0 / 0
Отправка письма с вложением через GMail
    #39703987
Slon747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanSlon747При выполнении последних 2-х строк logcat ничего не добавляет в логи.
А там и нет обращения к файлу. Оно дальше, когда активность запустится и начнет работать.

Скажите, а как тогда отфильтровать?
Без фильтра по приложению всё мелькает без остановки. Даже если ставлю фильтр по Errors.
...
Рейтинг: 0 / 0
Отправка письма с вложением через GMail
    #39704005
Slon747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На самом деле запускалось не приложение GMail, а "Почта".
В настройках устройства поменял на GMail по умолчанию.
Теперь создание письма с вложением нормально работает и без FileProvider.
С FileProvider письмо создается без вложения, а в LogCat ошибка:
09-18 09:37:10.306 26899-26899/? E/Gmail: Gmail:Error adding attachment
erp: SecurityException when openFileDescriptor.
at erq.a(SourceFile:7)
at erq.a(SourceFile:45)
at crx.a(SourceFile:415)
at ctp.run(SourceFile:2)
at crx.a(SourceFile:238)
at crx.a(SourceFile:625)
at crx.c(SourceFile:44)
at cta.a(Unknown Source:4)
at zkw.a(SourceFile:2)
at zku.run(SourceFile:4)
at zlk.execute(Unknown Source:0)
at zlx.a(SourceFile:2)
at zku.a(SourceFile:1)
at crx.ab(SourceFile:11)
at crx.onCreate(SourceFile:18)
at com.google.android.gm.ComposeActivityGmail.onCreate(SourceFile:17)
at android.app.Activity.performCreate(Activity.java:7372)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)
at android.app.ActivityThread.-wrap12(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)
at android.os.Handler.dispatchMessage(Handler.java:108)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7425)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
09-18 09:38:28.656 26899-26899/? E/Gmail: Gmail:Error adding attachment
erp: SecurityException when openFileDescriptor.
at erq.a(SourceFile:7)
at erq.a(SourceFile:45)
at crx.a(SourceFile:415)
at ctp.run(SourceFile:2)
at crx.a(SourceFile:238)
at crx.a(SourceFile:625)
at crx.c(SourceFile:44)
at cta.a(Unknown Source:4)
at zkw.a(SourceFile:2)
at zku.run(SourceFile:4)
at zlk.execute(Unknown Source:0)
at zlx.a(SourceFile:2)
at zku.a(SourceFile:1)
at crx.ab(SourceFile:11)
at crx.onCreate(SourceFile:18)
at com.google.android.gm.ComposeActivityGmail.onCreate(SourceFile:17)
at android.app.Activity.performCreate(Activity.java:7372)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)
at android.app.ActivityThread.-wrap12(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)
at android.os.Handler.dispatchMessage(Handler.java:108)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7425)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)


Вот и не ясно, то ли "Почта" просто не умеет принимать файлы через intent.putExtra то ли причина в не корректном использовании FileProvider.
...
Рейтинг: 0 / 0
Отправка письма с вложением через GMail
    #39704129
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ставлю на отсутствие intent.addFlags(FLAG_GRANT_READ_URI_PERMISSION)
...
Рейтинг: 0 / 0
Отправка письма с вложением через GMail
    #39704379
Slon747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpashaставлю на отсутствие intent.addFlags(FLAG_GRANT_READ_URI_PERMISSION)

Добавил. Но всё также gmail создает письмо без вложения.

P.S. Как я ранее заметил, если убрать FileProvider и в настройках устройства сделать почтовый клиент GMail по умолчанию, то работает корректно.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Отправка письма с вложением через GMail
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]