使用ASP.Net在服务器端获取Android版本

使用ASP.Net在服务器端获取Android版本,android,asp.net-mvc,mobile-website,Android,Asp.net Mvc,Mobile Website,我正在尝试检测android的android版本,比如2.2。。。4.0. 我正在Asp.Net 4.0 MVC 3.0 C#中开发一个web应用程序。我尝试了HttpBrowserCapabilitiesBase类。我怎样才能做到这一点? 所有想法都受到赞赏。 谢谢大家。您应该能够检查的值 如果您从该属性中检查,它应该包含“Android 2.2”、“Android 3.0”等等。您应该能够检查的值 如果您从该属性中检查,它应该包含“Android 2.2”、“Android 3.0”等等。取

我正在尝试检测android的android版本,比如2.2。。。4.0. 我正在Asp.Net 4.0 MVC 3.0 C#中开发一个web应用程序。我尝试了
HttpBrowserCapabilitiesBase
类。我怎样才能做到这一点?
所有想法都受到赞赏。

谢谢大家。

您应该能够检查的值


如果您从该属性中检查,它应该包含“Android 2.2”、“Android 3.0”等等。

您应该能够检查的值


如果您从该属性中检查,它应该包含“Android 2.2”、“Android 3.0”等等。

取自mvcmobile 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模板实际上非常有用,非常值得一看。见:

该模板实际上是通过在服务器端检测到移动设备时创建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
对于一个典型的安卓系统:

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字符串并定位“version”的位置(在上面的示例中-
Android 2.3.3
),因为我100%确定这在所有userAgent字符串中都是常量。显然,这对于一系列“非安卓”设备来说是一件乏味的事情,但希望能说明这一潜力。

摘自mvcmobile 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模板实际上非常有用,非常值得一看。见:

该模板实际上是通过在服务器端检测到移动设备时创建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
对于一个典型的安卓系统:

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字符串并定位“version”的位置(在上面的示例中-
Android 2.3.3
),因为我100%确定这在所有userAgent字符串中都是常量。显然,这对于一系列“非安卓”设备来说是乏味的,但希望能说明其潜力。

WURLF可以做到这一点。非常容易设置和使用

WURLF可以做到这一点。很容易设置和使用

您在研究中遇到过问题吗?@Marvin Pinto是的,我遇到了这个问题,但它并不是说从服务器端代码进行设置。非常感谢,我只是想指出一点,以防你不确定客户端,因为你没有真正提到。你在研究中遇到过问题吗?@Marvin Pinto是的,我遇到了这个问题,但它没有提到从服务器端代码执行。非常感谢,我只是想指出一点,以防你不确定客户端,因为你没有真正提到这一点。如何区分版本?如果安卓2.1至4.0需要支持一项功能,如何实现这一点?我不想创建range.socialCircus的任何数组-这不是我讨论过的与手机相关的领域,但是,如果不支持html5功能,modernizer是否会帮助解决一些兼容性问题而不求助于switch/case语句,因为它会降低功能的规模etc@socialCircus从用户代理字符串中提取准确信息取决于您,可以使用正则表达式或子字符串来完成。我不明白为什么你要在服务器端检查UA而不是在视图中发现浏览器功能。如何区分版本?如果安卓2.1至4.0需要支持一项功能,如何实现这一点?我不想创建range.socialCircus的任何数组-这不是我讨论过的与手机相关的领域,但是,如果不支持html5功能,modernizer是否会帮助解决一些兼容性问题而不求助于switch/case语句,因为它会降低功能的规模etc@socialCircus从用户代理字符串中提取准确信息取决于您,可以使用正则表达式或子字符串来完成。我不明白为什么你要在服务器端检查UA而不是在视图中发现浏览器功能。谢谢你检查浏览器。我需要检测设备运行的操作系统的版本。socialCircus-明白了,我将通过进一步研究tmro来了解这一点。。但是,该版本确实“包含”在该userAgent字符串中。见我的编辑上面。现在就晚安!:)感谢您检查浏览器。我需要检测设备运行的操作系统的版本。socialCircus-明白了,我将通过进一步研究tmro来了解这一点。。但是,该版本确实“包含”在该userAgent字符串中。见我的编辑上面。现在就晚安!:)