Сегодня мы с вами будем изучать Intent, или как его еще назывют "намерения". Наш сегодняшний урок будет состоять из двух подразделов: Теория и Практика. Можете сразу перелистать на Практику, но я бы советовал прочитать сначала теорию, чтобы понять, какие приемущества дает вам изучение данной темы.
Теория:
Intent в Delphi - запуск какой-то другой активности в другом приложении. В ближайших уроках мы рассмотрим(как отправить SMS, позвонить, отправить сообщение в Twitter). Сегодня же мы рассмотрим простейший пример намерения, но об этом в практике.
Итак, Intent позволяет нам:
1.Выполнить какое-то действие
2.Запустить сервис
3.Отправить уведомление о каком-либо событии.
Есть два вида намерений:
Явные
Мы указываем, какую активность
нужно вызвать и запускаем необходимый
класс. Например мы можем отправить
сообщение в Twitter, если такое приложение
установлено. Вместе с этим мы можем передавать
необходимые данные в активность
(сообщения, музыку и т.д)
Неявные
Android сам выбирает перечень
активностей, необходимых
для обработки переданных
параметров.
Intent содержит в себе три параметра 1)действие 2)данные 3)категория
Практика:
Рассмотрим простейшее намерение - открытие ссылки, записанной в нашем приложении с помощью браузера, установленного на устройстве.
Вот как это будет выглядеть:
1)На форме нам понадобятся обычная кнопка и edit.
2)При нажатии на кнопку, Android сам опредилит приложения, которые способны работать с протоколом http, и предложит пользователю выбрать браузер для дальнейших действий.
3)После выбора браузера произойдет открытие ссылки.(Интернет на моем смартфоне отсутствует, так что...)
Перейдем к коду.
1)Во первых нам нужно добавить три новых модуля в раздел Uses:
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Edit,
FMX.StdCtrls,
Androidapi.JNI.GraphicsContentViewText, //вот эти
Androidapi.JNI.JavaTypes, //три
FMX.Helpers.Android; //модуля
2)Код кнопки:
procedure TForm1.Button1Click(Sender: TObject);
var
Intent: JIntent;
begin
Intent := TJIntent.Create; // Создаем новое намерение (Intent)
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); // Указали действие — ACTION_VIEW (показать данные пользователю)
Intent.setData(StrToJURI(edit1.text)); // передаем URI из edit1
SharedActivity.startActivity(Intent); // запускаем нашу активность
end;
В ближайшем уроке рассмотрим отправку SMS сообщений, набор номера и звонок из вашего приложения. Успехов!