2011年4月23日土曜日

他のActivityを起動

Androidは他のアプリを起動するのに「startActivity」を使います。
Intentに任意のUriを指定してstartActivityを呼び出せば、それに会わせたアプリが自動的に起動されます。

例えば、以下では電話をかけるアプリを起動します。

            // Phone call
            Intent intent = new Intent("android.intent.action.DIAL", Uri.parse("tel:0312345678"));
            startActivity(intent);


以下は、ブラウザを起動する例です。

            // Launch Browser
            Intent intent = new Intent("android.intent.action.VIEW", Uri.parse("http://www.google.com"));
            startActivity(intent);


以下は、地図を表示する例です。

             // Launch map
            Intent intent = new Intent("android.intent.action.VIEW", Uri.parse("geo:35.710883,139.796321?z=20"));
            startActivity(intent);

geo:に続けて、経度と緯度を指定し、z=で拡大率を1〜23の間で指定します。
拡大率は1が地球全体で、2で2の2乗拡大、3で2の3乗拡大と続きます。
また、「geo:0,0?q=地名」と指定すれば、地名検索が行われます。


以下は、メーラーを起動する例です。

             // Launch Mailer
            String subject = getString(R.string.subject);
            String message = getString(R.string.message);
            Intent intent = new Intent("android.intent.action.SENDTO", Uri.parse("mailto:test@test.com"))
            .putExtra(Intent.EXTRA_SUBJECT, subject)
            .putExtra(Intent.EXTRA_TEXT, message);
            startActivity(intent);

リソースのvalues/strings.xmlにsubject要素を追加して任意のメールの件名、message要素には任意の本文を指定しておきます。
後はIntentとUriに上記のように指定すればメーラーが起動します。

0 件のコメント:

コメントを投稿