5. Разработка приложений для ОС Android. Использование данных извне (т.е. из другого приложения)

1) Нажмем Open Perspective и добавим DDMS - он позволяет следить за большим количеством процессов проходящих на эмулируемом телефоне.
2) Запускаем виртуальный телефон и открываем в DDMS вкладку File Explorer.  Скопируем несколько изображений в папку /mnt/sdcard/LOST.DIR
Закрыть виртуальный телефон
3) Запустить виртуальный телефон не из snapshot, а в полную загрузку. Найти загруженные изображения в Gallery.
4) Добавить к activity Main новый intent-фильтр в AndroidManifest.xml

<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="image/*"/>
</intent-filter>

Данное действие называется android.intent.action.SEND т.е. посылка.
Категория android.intent.category.DEFAULT т.е. по умолчанию.
Модификатор данных <data android:mimeType="image/*"/> т.е. какие данные мы можем обрабатывать в соответствии с этим посылом. Звездочка означает что мы готовы обрабатывать любой вид изображения вне зависимости от их формата.
5) В main.xml добавим компонент ImageView. Ставим ему атрибут ContentDescription в значение @+id/imageView1.
6) Далее идем в Main.java файл и определяем изображение:

ImageView image1 = (ImageView) findViewById(R.id.imageView1);
Intent intent = getIntent();
String action = intent.getAction();
if (intent.ACTION_SEND.equals(action)) { // только если посылом было ACTION_SEND 
    // вставляем картинку посыл в ImageView окно
    image1.setImageURI((Uri) intent.getExtras().get(Intent.EXTRA_STREAM));
}

Intent.EXTRA_STREAM означает, что мы получаем информацию из внешнего потока

7) Запускаем приложение: