2012-02-08 11 views
2

2.2 ... 4.0のようなAndroidのアンドロイドバージョンを検出しようとしています。私はAsp.Net 4.0 MVC 3.0 C#でWebアプリケーションを開発しています。私はHttpBrowserCapabilitiesBaseクラスで試してみました。どのように私はこれを達成することができますか?
すべてのアイデアは高く評価されています。
ありがとうございます。ASP.Netを使用してサーバー側でAndroidバージョンを取得

+0

あなたの研究で[これ](http://stackoverflow.com/q/8073800/1101070)の質問に出くわしましたか? –

+0

@Marvin Pintoはい、私は質問に出ましたが、それはサーバー側のコードから行うことについて話しませんでした。ありがとうございました – SocialCircus

+0

十分に公正、私はちょうどあなたがクライアント側について不確かな場合は、本当に言及する。 –

答えて

0

HttpRequest.UserAgentの値を確認する必要があります。

user agent valuesに「Android 2.2」、「Android 3.0」などが含まれている必要があります。

+0

どのようにバージョンを区別できますか? 1つの機能をAndroid 2.1〜4.0でサポートする必要がある場合、どうすればこのことができますか?私は範囲の配列を作成したくありません。 – SocialCircus

+0

socialCircus - 携帯との関連で扱った領域ではありませんが、html5機能がサポートされていない場合、機能をダウンスケールするので、近代化はスイッチ/ケースステートメントに頼らずにこれらの互換性の問題を助けません。 –

+0

@ socialCircusは、ユーザーエージェント文字列から正確な情報を抽出することはあなた次第であり、正規表現または部分文字列で行うことができます。なぜあなたはビュー上のブラウザ機能を発見するのではなく、サーバー側のUAをチェックしようとしているのですか? – 48klocs

0

mvcmob​​ile nugetテンプレートから取得したもので、携帯端末を見ているかどうかを判断する手段です。コントローラで

public static bool IsSupportedMobileDevice(this HttpRequestBase request) 
{ 

    bool isMobile = request.Browser.IsMobileDevice; 
    string userAgent = request.UserAgent.ToLowerInvariant(); 

    isMobile = isMobile 
      || (userAgent.Contains("iphone") 
      || userAgent.Contains("blackberry") 
      || userAgent.Contains("mobile") 
      || userAgent.Contains("windows ce") 
      || userAgent.Contains("opera mini") 
      || userAgent.Contains("palm") 
      || userAgent.Contains("fennec") 
      || userAgent.Contains("adobeair") 
      || userAgent.Contains("ripple") 
     ); 
    return isMobile; 

} 

用法:

if (Request.IsSupportedMobileDevice()){...} 

をこのnugetテンプレートは、実際に見てみたの価値が、非常に便利ですが合うように/リファクタリングを編集することができます。参照:

http://visualstudiogallery.msdn.microsoft.com/9df9c61c-4d90-43e5-9aa1-a58786b7a1e4?SRC=VSIDE

このテンプレート実際の機能は、サーバ側のモバイルデバイスを検出した場合、モバイルデバイス用にレンダリングされるモバイル特定のビューを可能にし、それによって、viewengineオーバーライドを作成することによって。私は言わざるを得ない、私の簡単なテストでこれまでのところかなりうまくいく。

[編集] - iphoneのために、生産userAgentには、次のとおりです。

mozilla/5.0 (iphone; u; cpu iphone os 4_0 like mac os x; en-us) applewebkit/532.9 (khtml, like gecko) version/4.0.5 mobile/8a293 safari/6531.22.7 

と、一般的なAndroid用:

Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; HTC_DesireS_S510e Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 

あなたはそのためUserAgent文字列を解析し、どこで見つけることができ上記の例では、すべてのuserAgent文字列で定数となることを100%確信しているので、 'version'は(上の例では-)配置されています。明らかに、これは様々な「アンドロイドではない」デバイスでは面倒ですが、その可能性をうまく説明できます。

+0

これはブラウザをチェックします。私は、デバイスが動作しているOSのバージョンを検出する必要があります。 – SocialCircus

+0

socialCircus - gotcha、もし私がそれ以上の研究でそれを明らかにすることができたら、私は見ていきます。tho、バージョンは確かにそのuserAgent文字列の中に含まれています。上記の私の編集を参照してください。今g'night! :) –

関連する問題