8

ミッションは、Web サーバー側でいくつかのデバイスに関する統計を取得することです。そのために、次のような特定の Android デバイスの既定のブラウザーのユーザー エージェント文字列を知りたいです。


  • HTC:
    • HTCジェットストリーム
    • HTC フライヤー
    • HTC エボビュー 4G

  • ネクサス:
    • ネクサス7
    • ネクサス10

  • サムスン:
    • ギャラクシー タブ
    • ギャラクシー タブ 2
    • ギャラクシーノート

  • モトローラ:
    • モトローラ Xyboard 8"
    • ドロイド・ザイボード
    • モトローラ Xyboard 10"

簡単に知る方法はありますか?デバイス名をユーザー エージェント文字列にマップする既知のリストはありますか? また、別のアプローチを取る必要がある場合は、アドバイスをお願いします。

4

6 に答える 6

6

私の意見では、Android デバイスに基づいてさまざまなユーザー エージェントからのヒットをカウントするには、サーバーを指す1 つのURLを作成する必要があります。アプリケーションの開始時にユーザー エージェントを取得し、サーバーに送信します。

このコードを実行して、ユーザー エージェントを取得します

        WebView mes = new WebView(this);
        String str = mes.getSettings().getUserAgentString();
        Log.i("My User Agent", str);

Samsung Tablet 10.1 インチ エミュレータで、ユーザー エージェントを取得しました

Mozilla/5.0 (Linux; U; Android 3.0; en-us; sdk Build/HONEYCOMB) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13

そして私が得たNexusエミュレーターで

Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; google_sdk Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
于 2013-01-05T09:12:21.917 に答える
4

これは直接的な答えではありませんが、問題を提起したいと思います。

クライアント側のユーザーエージェントは簡単に変更できることに注意してください。たとえば、プログラミングの側面では:

HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
HttpProtocolParams.setUserAgent(params, "WAHAHAHA");
HttpConnectionParams.setConnectionTimeout(params, HTTP_CONNECTION_TIMEOUT);
HttpConnectionParams.setSoTimeout(params, HTTP_READ_TIMEOUT);
HttpClient newHttpClient = new DefaultHttpClient(params);

これを使用しHttpClientてサイトにアクセスする場合、ユーザー エージェントは「WAHAHAHA」になります。

さらに、ドルフィン ブラウザなどの市場で入手可能な一部の Web ブラウザでは、ユーザーは任意のユーザー エージェントの組み合わせを入力できます。

したがって、ユーザー エージェントから収集されたヒット カウント統計はあまり信頼できないと思います。ヒット カウント情報を収集する別の基準を見つけることをお勧めします =]

于 2013-01-03T04:06:42.933 に答える
3

perl で書かれたApache Mobile Filterなどの既存のソリューションを変更することをお勧めします。約 70k のユーザー エージェントで51Degrees XML ファイルを使用します。興味深いものを見つけて、興味深いデータが収集されるように AMF スクリプトを変更するだけで済みます。さらに、51Degrees と AMF を使用して、ユーザーのデバイスがモバイルかどうか、画面のサイズなどを認識することもできます。

于 2012-12-29T11:28:49.537 に答える
3

ここでユーザーエージェントのリストを見つけることができます

サーバーでそれらを確認します

于 2012-12-25T16:20:23.777 に答える
2

UserAgentString.comをチェックアウトします。また、 Android Webkit Browser User Agent Stringsのリストもあります。

また、UA 文字列を解析し、キーと値のペアまたは JSON のリストを返すAPI も備えています。

于 2012-12-29T11:23:40.983 に答える
1

Webview を作成し、http://developer.android.com/reference/android/webkit/WebSettings.html#getDefaultUserAgent%28android.content.Context%29を使用します。デバイス名をユーザー エージェントにマップするリストはありません。アプリケーションを実行しているモバイルによって、デバイスの種類とユーザー エージェントをサーバーに送信することをお勧めします。

于 2012-12-25T16:08:41.460 に答える