Android開発記録雑記 -20ページ目

Android開発記録雑記

パソコン中級者ぐらいの私が
スマホアプリの開発をしてみようと思い立ち
Androidで動くアプリ開発過程をこれから書き記していきます。

今日は新しい項目  Interacting with Other Apps
の1つ目 Sending the User to Another App を始めていきます。

アプリ同士の情報のやり取りについての話です。

例えば、

自分のアプリで入力したURLのページをブラウザで見たいな

なんてとき、
自分のアプリにブラウザ機能をつけたりせずに
入力したURL情報をブラウザに送る機能です。


まずインテントを作成します。
インテントは Building Your First App part3 でもやりました。
アクティビティ間でやり取りするためのパラメータです。

このインテントには

明示的インテント
 インテントを送る側がアプリを特定して発送する。
暗黙的インテント
 送る時点ではどのアプリが使うかを決定していない。

の2種類があります。今回は暗黙的インテントを使います。


これは電話番号をやり取りする意図で作成
Uri number = Uri.parse("tel:5551234");
Intent callIntent = new Intent(Intent.ACTION_DIAL, number);


ACTION_DIAL この部分を用途に合わせて切替ます。
ブラウザなら ACTION_VIEW
 といった具合に

もし、複数のデータを送るなら
putExtra() を使ってインテントを拡張します。
Intent
emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent
.setType(HTTP.PLAIN_TEXT_TYPE);
emailIntent
.putExtra(Intent.EXTRA_EMAIL, new String[] {"jon@example.com"});
emailIntent
.putExtra(Intent.EXTRA_SUBJECT, "Email subject");
...



次に、インテントを送るアプリが存在するかのチェックです。
queryIntentActivities( 
を使います。
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isIntentSafe = activities.size() > 0;



そして、アプリを起動させます。
startActivity
( を使います。
if (isIntentSafe) {
    startActivity(Intent);
}


もし、ユーザーに起動するアプリを選ばせる場合
App Chooser を使い選択画面を表示します。

Intent intent = new Intent(Intent.ACTION_SEND);
...

String title = getResources().getText(R.string.chooser_title);
Intent chooser = Intent.createChooser(intent, title);
startActivity(chooser);


こういった情報のやり取りがシステム側で対応がなされてるのは
かなり便利ですね

今日はこれまでー。