株式会社八角研究所 > 【連載】Android Tips - 第1回 特定URLへのアクセスをフックするには?

エンジニア募集中!

独立心旺盛で、新しい技術で新しいWebサービスを作りたいと思っているけれど、ひとりでやることに限界を感じているフリーのエンジニアの方。あなたの期待にこたえられる仲間と環境を、八角研究所なら提供できると思います。社員としてではない関わり方も、あるかもしれません。

2009年08月22日 12:00

Android Tips
第1回 特定URLへのアクセスをフックするには? * * * *

by tunakan

Tags: Java Androidアプリ作りたい 気になる技術をメモりたい Android 小ネタ

Androidでは、インテントフィルタという仕組みを使ってアクティビティを起動します(コンポーネントをアクティブにします)。

この仕組みを使ってブラウザでブラウジング中に特定のURLにアクセスした時に自身の作成したアプリケーションを起動させることができます。

例としてhttp://www.yahoo.co.jp/ へのアクセスをフックしてみます。

まずは、ブラウザからhttp://www.yahoo.co.jp にアクセスした時にどのようなインテントが発行されているのかLogCat(Androidのログ閲覧ツール)で確認します。すると下記のようなログが出力されています。

Starting activity: Intent {action=android.intent.action.VIEW categories={android.intent.category.BROWSABLE} data=http://www.yahoo.co.jp/ comp={com.android.browser/com.android.browser.BrowserActivity} }

ここまで分かればしめたものです。このログ通りにインテントフィルタを作成します。インテントフィルタは、AndroidManifest.xmlに記述します。

 

注意しなければならないのは、暗黙的インテントを処理するので、categoryにandroid.intent.category.DEFAULTも必要だというところです。

<intent-filter="">
	<action android:name="android.intent.action.VIEW">
	</action>
	<category android:name="android.intent.category.DEFAULT">
	</category>
	<category android:name="android.intent.category.BROWSABLE">
	</category>
	<data android:scheme="http" android:host="www.yahoo.co.jp" android:path="/">
	</data>
</intent>

以上で、特定URLへのアクセスをフックすることができます。

この記事の執筆者

九州男児 tunakan 28歳 入社2年目

内臓が全般的に弱いです。データベースは苦手なのに変なデーターベースに当たることが多い気がします。

この人の会社をみる この人関連のイベントをさがす この人と一緒にはたらく

この日記にコメントする

(メールアドレスは公開されません。メールで返答が欲しい場合などに入力してください)

このエントリへのトラックバックURL

コメント

コメントはありません

トラックバック

トラックバックはありません

メンバー紹介

sugimaru

sugimaru

すぎまるです。22時のシンデレラです。

はち子さん

はち子

広報を担当している、はち子です。本当は広報じゃなくて事務デスが、広報って言うほうがかっこいいし! 社内でゆいいつ、...

boy

boy

少年です。 18歳以下(嘘)でも立派に社員です。 よろしくおねがいします。