[Android] ユーザーエージェントに関する非推奨APIが面白い件

| トラックバック(1) |

[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);

関連記事

トラックバック(1)

トラックバックURL: http://mt.adakoda.com/mt-tb.cgi/239

Android アプリ の 研究所 アンドロイド ナビ - WebViewのユーザーエージェントを取得・変更する方法 (2012年2月27日 17:41)

アプリ内ブラウザ WebView のユーザーエージェントは このようにすると取得することができます。 String userAgentString = w... 続きを読む

2016年8月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31