Intent

advertisement
Intent
ANDROID CLUB 2015
Сегодня

Intent

Структура Intent

2 вида намерения

Фильтр намерения
Что такое Intent?
Намерение
 Пример:
1. Открыть другой Activity
2. Сделать звонок
3. Запустить браузер
4. Открыть камеру
5. Отправить e-mail
6. Показывать карту

Intent: пример
Intent intent = new Intent(MainActivity.this,
SecondActivity.class);
startActivity(intent);
Структура Intent

action – действие ACTION_DIAL, ACTION_CALL, ACTION_ANSWER,
ACTION_VIEW

data– данные URI: http, tel, geo, content

category – дополнительная информация о действии
CATEGORY_LAUNCHER, CATEGORY_BROWSABLE

type – тип данных text/plain, text/html, image/jpg, image/png

component – определенный класс MainActivity.class,
SecondActivity.class

extras – дополнение putExtra(“parol”,”1234”);

flag - FLAG_ACTIVITY_NO_HISTORY, FLAG_ACTIVITY_NO_ANIMATION
action: пример
Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL);
startActivity(intent);
action+data: пример
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
Uri data = Uri.parse("tel:+998903735173");
intent.setData(data);
startActivity(intent);
action+data: практика

Создавайте Intent

Действие: ACTION_DIAL

Данные: Телефон вашего друга

Поставьте кнопку. При нажатии кнопки
набирайте номер вашего друга
action+data: пример 2
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri data = Uri.parse("geo:41.28,69.27");
intent.setData(data);
startActivity(intent);
action+data: практика 2

Создавайте Intent

Действие: ACTION_VIEW

Данные: http://www.androidclub.uz

Поставьте кнопку. При нажатии кнопки
открывайте сайт Android Club
category: пример

CATEGORY_BROWSABLE

CATEGORY_LAUNCHER

Используется для неявного Intent
type: пример
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, 1);
switch(requestCode) {
case 1:
if(resultCode == RESULT_OK){
try {
final Uri imageUri = intent.getData();
final InputStream imageStream =
getContentResolver().openInputStream(imageUri);
final Bitmap selectedImage =
BitmapFactory.decodeStream(imageStream);
ImageView ivPhoto = (ImageView) findViewById(R.id.ivPhoto);
ivPhoto.setImageBitmap(selectedImage);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
type: практика

Создавайте Intent

Тип данных: file/*

С помощью этого Intent, запустите менеджер
файлов и выберите файла

В результате получите путь к файлу с
помощью метода getPath()

В результате показывайте путь к файлу
extras: пример
Intent intent = new Intent();
Uri uri = Uri.parse("mailto:");
intent.setAction(Intent.ACTION_SEND);
intent.setData(uri);
intent.setType("text/plain");
String[] to = {"androidclubuz@mail.ru","grakhimov@wiut.uz"};
intent.putExtra(Intent.EXTRA_EMAIL, to);
intent.putExtra(Intent.EXTRA_CC, to);
intent.putExtra(Intent.EXTRA_SUBJECT, "Homework - Activity");
intent.putExtra(Intent.EXTRA_TEXT, "Hello I have done homework");
startActivity(intent);
extras: практика

Создавайте Intent

Дейсвие: ACTION_VIEW

Данные: Uri со схемой “smsto:”

Тип данных: “vnd.android-dir/mms-sms”

Дополнение 1: address = +998903735173

Дополнение 2: sms_body = “Hello Android”

C помощью этого Intent запустите программу
для отправки SMS
flag: пример
Intent intent = new Intent(MainActivity.this,
SecondActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATI
ON);
startActivity(intent);
flag: практика

Сделайте так чтобы Activity2 не сохранилось в backstack

Подсказка: FLAG_ACTIVITY_NO_HISTORY
2 вида Intent(намерение)
1.
Явные намерения
2.
Неявные намерения
1. Явные намерения: пример
Intent intent = new Intent(MainActivity.this,
SecondActivity.class);
startActivity(intent);
1. Явные намерения: практика

Поставьте кнопку

При нажатии этой кнопки открывайте
ThirdActivity
2. Неявные намерения: пример
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri address =
Uri.parse("http://www.androidclub.uz");
intent.setData(address);
startActivity(intent);
2. Неявные намерения: практика

Создавайте Intent

Действие: ACTION_VIEW

Данные: Uri со схемой tel

tel:+998903735173

Поставьте кнопку, который набирает номер:
+998903735173
Фильтры намерения: пример
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category
android:name="android.intent.category.DEFAULT"/>
<data android:scheme="http"/>
</intent-filter>
Фильтры намерения: практика

Создавайте проект: CustomDialer

Добавьте фильтр намерения для один из Activity

Действие: VIEW, DIAL

Категория: DEFAULT, BROWSABLE

Данные: cхема – tel

Запускайте этот проект

После этого, запускайте предыдущий проект
который набирает номер
Download