Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Explain
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 53
1

Получение данных через действие android.intent.action.SEND

18.09.2018, 13:31. Просмотров 576. Ответов 4
Метки нет (Все метки)

Есть приложение, которое предлагает отправить файлы через кнопку "Поделиться". Мне необходимо получить эти файлы через своё приложение. Я добавил своё приложение как один из способов отправки:
XML
1
2
3
4
5
<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="*/*" />
</intent-filter>
Но не могу понять как мне получить данные(в данном случае видео-файл).
Можно ли получить какие-то данные, если узнать инициирующее намерение?
Java
1
2
3
4
5
6
7
8
9
Intent intent = getIntent();
 
Bundle extras = intent.getExtras();
Set<String> keys = intent.getExtras().keySet();
Iterator<String> iterator = keys.iterator();
String extraList = new String();
while (iterator.hasNext()) {
    extraList += iterator.next(); // Result: andoid.intent.extra.TEXT
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2018, 13:31
Ответы с готовыми решениями:

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
Выдает такую ошибку, хотя смартфон видит, он разрешает отладку, при запуске выдает такое сообщение,...

Starting: Intent { act=android.intent.action.MAIN. и пустой белый экран
При запуске приложения всё заканчивается на Starting: Intent { act=android.intent.action.MAIN...

Как отправить данные местоположения через ACTION SEND в приложении android?
Здравствуйте!На этом сайте ССЫЛКА я нашел решение для определения своего местоположения....

Передача данных через Intent
Не разобрался каким образом можно передать данные через Intent. Во втором классе void...

Attempt to invoke virtual method 'void android.widget.ShareActionProvider.setShareIntent(android.content.Intent)' on a n
Имеется код: MainActivity: package asus.example.com.notes1; import android.app.Activity;...

4
demixdn
312 / 256 / 80
Регистрация: 31.10.2016
Сообщений: 619
18.09.2018, 13:53 2
getIntent().getData()
0
Explain
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 53
18.09.2018, 14:22  [ТС] 3
Цитата Сообщение от demixdn Посмотреть сообщение
getIntent().getData()
Java
1
2
3
4
5
6
7
String msg;
Intent intent = getIntent();
Uri uri = intent.getData();
if(uri != null)
    msg = uri.getPath();
else
    msg = "Data not found."; // Срабатывает эта часть кода.
Я что-то делаю не так?
0
demixdn
312 / 256 / 80
Регистрация: 31.10.2016
Сообщений: 619
18.09.2018, 17:08 4
Explain, это я подсказал не так. в примере по другому указано:
Java
1
2
3
4
Uri fileUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
if (fileUri != null) {
    // Ваше действие с fileUri 
}
1
Explain
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 53
19.09.2018, 13:04  [ТС] 5
Цитата Сообщение от demixdn Посмотреть сообщение
Explain, это я подсказал не так. в примере по другому указано:
Всё также(
Java
1
2
3
4
5
6
7
8
9
String msg;
Intent intent = getIntent();
Uri fileUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
if(fileUri != null)
{
    msg = fileUri.getPath();
}
else
    msg = "Data not found."; // Срабатывает эта часть кода
Добавлено через 37 минут
Поэксперементировав выяснил, что отправляется заголовок видео и ссылка с ним:
Java
1
2
3
4
5
6
7
8
String msg;
Intent intent = getIntent();
String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
if (sharedText != null) {
    msg = sharedText;
}
else
    msg = "Video not found";
Соответственно изменил манифест:
XML
1
<data android:mimeType="text/plain" />
Как теперь выудить видео из строки типа "Видео http://video.com/n1cev1de0"?
0
19.09.2018, 13:04
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2018, 13:04

Запуск через Intent
Скажите пожалуйста. А лучше покажите... Как с помощью Intent запустить выполнение операции в...

Android select language action
Здравствуйте, как с помощью action bar сделать так чтобы пользователь смог самостоятельно выбирать...

Передать через intent VIEW
Как можно через intent передать &quot;VIEW&quot;, полученное вот таким способом: View view =...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.