「[Android] Android で Google Analytics - adakoda」の書き込みのとおり、
Google Analytics では、Android 1.5 標準のブラウザからのアクセスは、Safari / Android と認識されるのですが、
プログラム的にもユーザーエージェントを調べてみました。
UserAgentを取得するには、
android.webkit パッケージ - WebSettings クラスを使用することで、UserAgent を取得することができます。
具体的なサンプルソースコードは、以下のとおりです。
WebView webView = new WebView(this);
WebSettings webSettings = webView.getSettings();
String userAgentString = "";
userAgentString = webSettings.getUserAgentString();
Log.v("UserAgent", userAgentString);
上記のコードを実行すると、UserAgent は、
Mozilla/5.0 (Linux; U; Android 1.5; ja-jp; HT-03A Build/CDB72) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
のような結果でした。
※haru-komugi先生(http://d.hatena.ne.jp/haru-komugi/20090713/1247483849)のとこでも書かれています。
で、ここからが面白い。。。
Android 1.5 から非推奨APIとなった setUserAgent() を使用すると、定義済みの UserAgent に変更できます。
例えば、setUserAgent(1) とすると・・・
// 1 if the WebView should use a desktop user-agent string
webSettings.setUserAgent(1);
userAgentString = webSettings.getUserAgentString();
Log.v("UserAgent(1)", userAgentString);
結果は、
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Safari/525.20.1
のように Macintosh に早変わり。。。
続けて、setUserAgent(2) とすると・・・
// 2 if the WebView should use an iPhone user-agent string
webSettings.setUserAgent(2);
userAgentString = webSettings.getUserAgentString();
Log.v("UserAgent(2)", userAgentString);
結果は、
Mozilla/5.0 (iPhone; U; CPU iPhone 2_1 like Mac OS X; en) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile/5F136 Safari/525.20.1
のように、今度は iPhone に早変わり。。。
ちなみに、Android 1.5 からは、同クラスに setUserAgentString() が追加されていましたので、
以下のように任意の UserAgent を設定することもできます。
webSettings.setUserAgentString("hogehoge");
userAgentString = webSettings.getUserAgentString();
Log.v("UserAgent(hogehoge)", userAgentString);