Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
#1

Отправка другу файла с картинкой из приложения - Android

12.04.2016, 21:46. Просмотров 400. Ответов 3
Метки нет (Все метки)

В приложении реализована функция "поделись с другом" стандартным способом.
Все работает, кроме одного момента. При попытке прикрепить к письму файл с картинкой почтовый клиент уведомляет, что "присоединение несохраненного файла невозможно"
Сам файл с картинкой находится в drawable
Java
1
2
3
4
5
6
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_SUBJECT, getString (R.string.subject));
intent.putExtra(Intent.EXTRA_TEXT, text); // собственно сообщение
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://" + getPackageName() + "/drawable/" + R.drawable.dummy));
startActivity(Intent.createChooser(intent, getString(R.string.app_name)));
Добавлено через 8 часов 9 минут
Помучившись, вспомнил, что сейчас так просто невозможно получить доступ к файлу из другого приложения. Сделал через FileProvider.
Заработало, но на половину. Т.е. картинка прикрепляется к Gmail и WhatsApp, но при выборе в качестве share обычной электронной почты прикрепляется файл с нужным именем, но нулевого размера.
Подскажите, куда копать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2016, 21:46     Отправка другу файла с картинкой из приложения
Посмотрите здесь:

Отправка файла в веб Android
Android Отправка из приложения сообщений электронной почты с вложением
Отправка Zip файла по email Android
Android Notification с картинкой
ImageButton с картинкой из файла Android
Отправка сообщения в Skype из приложения Android
Как добавить действие (удаление файла) при установке приложения Android
Android Как добавить в начало приложения (готового .apk файла) свою сцену?
Выполнение внешнего Java файла или обновление приложения Android
Android Отправка данных из андроид приложения на сервер
Android Отправка массива данных из андроид приложения на сервер по http
Удаление APK-файла после установки приложения? Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
12.04.2016, 22:32     Отправка другу файла с картинкой из приложения #2
Alexvp, можно сохранить изображение в общедоступном месте. Например можно сделать так:


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    public void sendImage(Context context, Bitmap bitmap, String chooserTitle) {
 
        Uri uriToImage = saveBitmap(context, bitmap, UUID.randomUUID().toString());
        if(uriToImage == null) {
            return;
        }
        Intent shareIntent = new Intent();
        shareIntent.setAction(Intent.ACTION_SEND);
        shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
        shareIntent.setType("image/jpeg");
        context.startActivity(Intent.createChooser(shareIntent, chooserTitle));
    }
 
    private Uri saveBitmap(Context context, Bitmap bitmap, String bitmapName) {
        try {
            FileOutputStream out = new FileOutputStream(context.getFilesDir().toString() + "/" + bitmapName);
            bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
            String path = MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, bitmapName, null);
            return Uri.parse(path);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
12.04.2016, 22:38  [ТС]     Отправка другу файла с картинкой из приложения #3
Спасибо, тоже вариант. Если не удастся побороть текущую ошибку, то буду пользоваться им.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
14.04.2016, 14:52     Отправка другу файла с картинкой из приложения #4
Alexvp,
Java
1
.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://"+getPackageName()+"/"+R.drawable.dummy));
Yandex
Объявления
14.04.2016, 14:52     Отправка другу файла с картинкой из приложения
Ответ Создать тему
Опции темы

Текущее время: 11:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru