0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 53
1

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

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

Author24 — интернет-сервис помощи студентам
Есть приложение, которое предлагает отправить файлы через кнопку "Поделиться". Мне необходимо получить эти файлы через своё приложение. Я добавил своё приложение как один из способов отправки:
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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...

4
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
18.09.2018, 13:53 2
getIntent().getData()
0
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
314 / 257 / 81
Регистрация: 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
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2018, 13:04
Помогаю со студенческими работами здесь

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;...

Передача больших данных через Intent
Здравствуйте, как передать большой объем данных через Intent ? Сейчас делаю так: val...

Android: cannot find symbol constructor Intent
Собсно сабж. package com.example; import android.app.Activity; import...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru