Delphi XE5でインテントの使用例。
使用するユニット
uses
Androidapi.JNI.JavaTypes, // StringToJString
FMX.Helpers.Android, // SharedActivity
Androidapi.JNI.GraphicsContentViewText; // TJIntent
使用する関数
StrToJURI
「StrToJURI(ASource)」は「TJnet_Uri.JavaClass.parse(StringToJString(ASource))」と同じ。
URLを開く
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setData(StrToJURI('http://www.gesource.jp/weblog/'));
SharedActivity.startActivity(Intent);
end;
PDFファイルを開く
var
Intent: JIntent;
FileName: string;
begin
FileName := …; //PDFファイルのファイル名
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setDataAndType(StrToJURI(FileName),
StringToJString('application/pdf'));
SharedActivity.startActivity(Intent);
end;
文字列を開く
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_SEND);
Intent.setType(StringToJString('text/plain'));
Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString('インテントのテスト'));
SharedActivity.startActivity(Intent);
end;
地図(Google Maps)を開く
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setData(StrToJURI('geo:0,0?q=大阪府大阪市'));
SharedActivity.startActivity(Intent);
end;
Google Mapsで経路検索
大阪駅の緯度(34.701909)、経度(135.494977)、徒歩モード(mode=w)を指定している。
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setClassName(StringToJString('com.google.android.apps.maps'), StringToJString('com.google.android.maps.MapsActivity'));
Intent.setData(StrToJURI('google.navigation:///?ll=34.701909,135.494977&title=大阪駅&mode=w'));
SharedActivity.startActivity(Intent);
end;
ダイアラーを開く
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_DIAL);
Intent.setData(StrToJURI('tel:090-XXXX-XXXX'));
SharedActivity.startActivity(Intent);
end;
メールを送る
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_SEND);
Intent.setType(StringToJString('message/rfc822'));
Intent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, StringToJString('test@example.com'));
Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString('メールの件名'));
intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString('メールの本文'));
SharedActivity.startActivity(TJIntent.JavaClass.createChooser(Intent,
StrToJCharSequence('メールソフトを選択してください')));
end;
Androidの設定画面を開く
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent.setAction(StringToJString('android.settings.SETTINGS'));
SharedActivity.startActivity(Intent);
end;
学習中なので間違いがあれば教えてください。