2012-12-25 2 views
7

ウェブサーバー側でいくつかのデバイスの統計情報を取得するのが任務です。特定のアンドロイドデバイスのユーザーエージェント文字列を知るには?


  • HTC:
    • HTCジェットストリーム
    • HTCフライヤー
    • HTCエボそのために、私は次のような特定のAndroidデバイス上のデフォルトブラウザ用のユーザーエージェント文字列を知りたいのですがビュー4G

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

  • SAMSUNG:
    • ギャラクシータブ
    • 銀河タブ2
    • ギャラクシー注

  • MOTOROLA:
    • モトローラXyboard 8"
    • ドロイドXyboard
    • モトローラXyboard 10"

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

+0

ユーザーエージェントはデバイス固有のものではありません –

+0

説明してください。とにかく、任務は、上記のデバイスのいくつか(および他のもの)をWebサーバー側から取得することです。それに関するアドバイスは参考になります。 – BreakPhreak

+3

異なるデバイスは同じユーザーエージェントを持つことができます。彼らは偽のユーザーエージェントも報告することができます。それは完全にアプリの要求をしているまでです。あなたは何の統計情報を探していますか? –

答えて

3

perlで書かれたのような既存のソリューションを変更することをお勧めします。それは51Degrees XMLファイルを使用し、約70kのユーザエージェントについて何かを持っています。興味深いものを見つけて、興味深いデータを収集するような方法でAMFスクリプトを修正するだけです。

してください:これは、私が問題を提起したいと思い、直接答えではありませんが、何がより51Degreesで、AMFはユーザーのデバイスがモバイルであるかどうかを認識するためにも使用されるかもしれない、それは画面の大きさなど

1

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

+0

私はサーバー側にユーザ​​ーエージェント文字列の配列を持っています。今私はさまざまなデバイスからのヒット数を数えたいと思う。 – BreakPhreak

3

ユーザー・エージェントhere

のリストを見つけて、サーバー

+0

素晴らしい!たとえば、「Galaxy Tab 2」のユーザーエージェント文字列を知るにはどうすればよいですか? – BreakPhreak

+0

これはサーバー側の言語に依存します。したがって、ユーザーエージェントを取得して特定の言語で解析する方法を検索できます。 –

+0

「Galaxy Tab 2」(たとえば)の文字列を検索するには? – BreakPhreak

4

ですクライアントサイドのuser-agentは簡単に変更できることに注意してください。プログラミングの局面ではたとえば :あなたのサイトにアクセスするには、このHttpClientを使用する場合

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

、ユーザエージェントはまた、「WAHAHAHA」

なり、そのようなイルカのブラウザとして市場で入手可能いくつかのWebブラウザがユーザーに許可ユーザーエージェントの組み合わせを入力する必要があります。

したがって、私が何を考えて、ユーザエージェントから収集したヒットカウント統計はそれほど信頼できないだろうが、私は=ヒットカウント情報を収集するために、別の基準を見つけることをお勧めします]

+1

はい、すべてのHTTPリクエストヘッダーは(潜在的に信頼できない)クライアントによって生成されます。しかし、ごくわずかな割合のユーザしかユーザエージェント文字列を変更しないので、これらの統計的外れ値は、OPが求めている結果に顕著な影響を与えません。 – iX3

5

私の意見でヒットをカウントしますAndroidデバイスのベースにあるさまざまなユーザーエージェントから、のURLをサーバーに設定する必要があります。アプリケーションの開始でユーザエージェントを取得し、サーバにを送信します。

私は、ユーザエージェント

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 

を持って、ネクサスエミュレータ上で、私は

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 
を得たユーザーエージェントにサムスンのタブレット10.1インチのエミュレータ上で

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

を取得するには、このコードを実行します

+0

完璧!これはまさに私が探していたものでした:) – Dediqated

関連する問題