Вопрос

Я начинаю учиться разрабатывать приложения для Android, и у меня возникли некоторые проблемы с намерениями — похоже, они просто не задокументированы. совсем.Все, что я хочу сделать, это отправить пользователя на видеомагнитофон, где он записывает видео, и видеоинформация возвращается в мое приложение.Я знаю, что это возможно, поскольку я видел это в других приложениях, но кажется, что намерение недокументировано (или я просто не совсем понимаю, как работают намерения).

Есть предположения?

Это было полезно?

Решение

В общем, документация для разработчиков Android — хорошее место для поиска подобных вещей:есть список действий с общим намерением в Ссылка на класс намерения.Для записи видео см. ACTION_VIDEO_CAPTURE намеренное действие, определенное медиа-провайдером.

Другие советы

Помимо приведенных выше решений, вот список общих намерений.

//показать намерение веб-страницы:

Uri uri = Uri.parse("http://www.google.com");
Intent it  = new Intent(Intent.ACTION_VIEW,uri);
startActivity(it);

//показать намерение карты:

Uri uri = Uri.parse("geo:38.899533,-77.036476");
Intent it = new Intent(Intent.Action_VIEW,uri);
startActivity(it); 

//покажем пути

Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");
Intent it = new Intent(Intent.ACTION_VIEW,URI);
startActivity(it);

//вызов программы набора номера

Uri uri = Uri.parse("tel:xxxxxx");
Intent it = new Intent(Intent.ACTION_DIAL, uri);  
startActivity(it);  

Uri uri = Uri.parse("tel.xxxxxx");
Intent it =new Intent(Intent.ACTION_CALL,uri);
//don't forget add this config:<uses-permission id="android.permission.CALL_PHONE" />

//отправляем смс/ммс, вызываем программу-отправитель

Intent it = new Intent(Intent.ACTION_VIEW);   
it.putExtra("sms_body", "The SMS text");   
it.setType("vnd.android-dir/mms-sms");   
startActivity(it);  

//Отправить смс

Uri uri = Uri.parse("smsto:0800000123");   
Intent it = new Intent(Intent.ACTION_SENDTO, uri);   
it.putExtra("sms_body", "The SMS text");   
startActivity(it);  

//отправляем ммс

Uri uri = Uri.parse("content://media/external/images/media/23");   
Intent it = new Intent(Intent.ACTION_SEND);   
it.putExtra("sms_body", "some text");   
it.putExtra(Intent.EXTRA_STREAM, uri);   
it.setType("image/png");   
startActivity(it); 

//отправляем письмо

Uri uri = Uri.parse("mailto:xxx@abc.com");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(it);

Intent it = new Intent(Intent.ACTION_SEND);   
it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");   
it.putExtra(Intent.EXTRA_TEXT, "The email body text");   
it.setType("text/plain");   
startActivity(Intent.createChooser(it, "Choose Email Client"));  

Intent it=new Intent(Intent.ACTION_SEND);     
String[] tos={"me@abc.com"};     
String[] ccs={"you@abc.com"};     
it.putExtra(Intent.EXTRA_EMAIL, tos);     
it.putExtra(Intent.EXTRA_CC, ccs);     
it.putExtra(Intent.EXTRA_TEXT, "The email body text");     
it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");     
it.setType("message/rfc822");     
startActivity(Intent.createChooser(it, "Choose Email Client"));   


//add extra
Intent it = new Intent(Intent.ACTION_SEND);   
it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");   
it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");   
sendIntent.setType("audio/mp3");   
startActivity(Intent.createChooser(it, "Choose Email Client"));

//воспроизведение мультимедиа

Intent it = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("file:///sdcard/song.mp3");
it.setDataAndType(uri, "audio/mp3");
startActivity(it);

Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");   
Intent it = new Intent(Intent.ACTION_VIEW, uri);   
startActivity(it);  

//Удалить

Uri uri = Uri.fromParts("package", strPackageName, null);   
Intent it = new Intent(Intent.ACTION_DELETE, uri);   
startActivity(it);

//удаляем апк

Uri uninstallUri = Uri.fromParts("package", "xxx", null);
returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri);

//устанавливаем апк

Uri installUri = Uri.fromParts("package", "xxx", null);
returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);

//воспроизводим аудио

Uri playUri = Uri.parse("file:///sdcard/download/everything.mp3");
returnIt = new Intent(Intent.ACTION_VIEW, playUri);

//отправляем дополнительно

Intent it = new Intent(Intent.ACTION_SEND);  
it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");  
it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/eoe.mp3");  
sendIntent.setType("audio/mp3");  
startActivity(Intent.createChooser(it, "Choose Email Client"));

//поиск

Uri uri = Uri.parse("market://search?q=pname:pkg_name");  
Intent it = new Intent(Intent.ACTION_VIEW, uri);  
startActivity(it);  
//where pkg_name is the full package path for an application  

//показать страницу сведений о программе

Uri uri = Uri.parse("market://details?id=app_id");  
Intent it = new Intent(Intent.ACTION_VIEW, uri);  
startActivity(it);  
//where app_id is the application ID, find the ID  
//by clicking on your application on Market home  
//page, and notice the ID from the address bar

//поиск в гугле

Intent intent = new Intent();
intent.setAction(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY,"searchString")
startActivity(intent);

Возможно, вы захотите проверить Опенинтентс

Это относительно новое решение от Google (похоже, они обновили свою старую страницу, на которой только что были показаны намерения для стандартных приложений Google).

Общие намерения

Это говорит вам точно Intent спецификация для выполнения широкого спектра действий с приложениями для:

  • Будильник
  • Камера
  • Календарь
  • Контакты / Люди
  • Электронная почта
  • Файловое хранилище
  • Карты
  • Клип
  • Телефонный номеронабиратель
  • Настройки
  • Текст сообщения
  • Просмотр веб-страниц

Теперь важно, что Google предоставил окончательный список Intents, которые должны использоваться для выполнения данного действия, мы используем их именно так, как там предусмотрено.Причина Intents — это стандартный метод связи между приложениями (т.е.разные разработчики), поэтому ради совместимости вашего приложения важно поговорить точно тот же язык, который будут использовать все остальные.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top