2010年10月21日木曜日

Androidの標準ブラウザで開いたHTMLから自作アプリを起動してみた

通常のアプリのように見えて、
かつ、
ブラウザーからもアプリを起動できるようにするためには、
アクティビティにintent-filterを追加すればよい。

AndroidManifest.xml
<activity
    android:name=".MyActivity"
    android:label="@string/app_name"
    >
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:scheme="hello" android:host="world"/>
    </intent-filter>
</activity>

HTMLには
<a href="hello://world/">起動</a>
こんなリンクを用意する。

ブラウザーから起動された場合、getIntent().getData()でUriを取得することができる。
アクティビティが普通に起動されたときには、getData()はnullを返す。