Урок 31. Зачем у Intent есть атрибут data. Что такое Uri. Вызываем системные приложенияВ этом уроке:

— узнаем, что такое Uri и Intent-атрибут data

— вызываем системные приложения (браузер, звонилка, карта)

Мы знаем, что Intent имеет атрибут action. С помощью этого атрибута обычно дается указание действия. Например, просмотр или редактирование. Но действие обычно совершается не просто так, а с чем-либо. Значит кроме указания действия, мы должны указывать на объект. с которым эти действия нужно произвести. Для этого Intent имеет атрибут data .

Один из способов присвоения значения этому атрибуту – метод setData (Uri data) у объекта Intent. На вход этому методу подается объект Uri .

Uri – это объект, который берет строку. разбирает ее на составляющие и хранит в себе эту информацию. Строка, конечно, должна быть не любая, а составлена в соответствии с этим документом RFC 2396. Uri имеет кучу методов. которые позволяют извлекать из распарсенной строки отдельные элементы .

Я создам объект Uri из строки, а в лог буду выводить название метода и (через двоеточие) значение, которое он возвращает. Например возьмем такую строку — http адрес:

Смотрим, чего нам возвращают методы:

uri. getScheme(): http

uri. getSchemeSpecificPart(): //developer. android. com/reference/android/net/Uri. html

uri. getAuthority(): developer. android. com

uri. getHost(): developer. android. com

uri. getPath(): /reference/android/net/Uri. html

uri. getLastPathSegment(): Uri. html

Понятия Scheme, Authority, Host, Path и пр. – взяты из RFC дока, ссылку на который я дал выше. Там можно найти их полное описание, понять что они означают и свериться с тем, что нам вернул Uri.

Рассмотрим еще примеры:

FTP

(Код, написанный выше, идет одной строкой на самом деле. Здесь идут пробелы вокруг @ из-за особенностей разметки )

uri. getScheme(): ftp

uri. getSchemeSpecificPart(): // Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. 80/data/files

uri. getAuthority(): Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. 80

uri. getHost(): google. com

uri. getPort(): 80

uri. getPath(): /data/files

uri. getLastPathSegment(): files

uri. getUserInfo(): bob

Комментарии запрещены.

Навигация по записям