[Wap] 识别访问手机的能力

[Wap] 识别访问手机的能力


Code


日期


关键词


codeproject.com


2005-7-28


Wap ASP.NET MobileCapabilities

 

概念

我们通过以下代码可以获取手机的能力,从而针对不同能力的手机做出显示彩色还是黑白色的图片,显示的字体是否可以为彩色等等。
 

还可以进一步通过System.Web.Mobile.MobileCapabilities 的成员函数

System.Boolean HasCapability ( System.String delegateName , System.StringoptionalParameter )来查询手机是否支持某一特性,代码如下:

bool bHasWBMP =                 
   ((MobileCapabilities)Request.Browser).HasCapability("PreferredImageMime", "image/vnd.wap.wbmp");
log.Info("Has WBMP?" + bHasWBMP.ToString());

MobileCapabilities Codes

在asp.net页面中安排如下代码即可通过log4net打印出手机的MobileCapabilities:


 代码:


private void Page_Load(object sender, System.EventArgs e)

        {  

            if(!IsPostBack)

            {

                log.Info("-============ 输出MobileCapabilities Begin ==============-");

                Type myType =(typeof(System.Web.Mobile.MobileCapabilities));

                System.Reflection.PropertyInfo[] myPropertyInfo =

                   myType.GetProperties(System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.Instance);

                DisplayPropertyInfo(myType, myPropertyInfo);

                log.Info("-============ 输出MobileCapabilities End ==============-");

            }

 

。。。}

 

 

void DisplayPropertyInfo(Type t,System.Reflection.PropertyInfo[] myPropertyInfo)

        {

            // Display information for all properties.

            System.Web.Mobile.MobileCapabilities m=( System.Web.Mobile.MobileCapabilities)Request.Browser;

            for(int i=0;i<myPropertyInfo.Length;i++)

            {

                Object result=new Object();

                System.Reflection.PropertyInfo myPropInfo = (System.Reflection.PropertyInfo)myPropertyInfo[i];

                try

                {

                    result = t.InvokeMember (myPropInfo.Name, System.Reflection.BindingFlags.GetProperty|System.Reflection.BindingFlags.GetField, null, m, new object [] {});

                }

                catch (System.MissingMethodException e)

                {

                    result =e.Message;

                }

                log.Info ("[" + myPropInfo.Name+ " ]:<" + result+">");

            }

        }

 

 

下面日志对应的手机型号是

Nokia7610/2.0 (4.0424.4ch) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0


 输出的日志如下:


- -============ 输出MobileCapabilities Begin ==============-
 - [MobileDeviceManufacturer ]:<Nokia>
 - [MobileDeviceModel ]:<Unknown>
 - [GatewayVersion ]:<Nokia WAP Gateway 4.0/CD3/4.0.04)>
 - [GatewayMajorVersion ]:<4>
 - [GatewayMinorVersion ]:<0>
 - [PreferredRenderingType ]:<wml11>
 - [PreferredRenderingMime ]:<text/vnd.wap.wml>
 - [PreferredImageMime ]:<image/vnd.wap.wbmp>
 - [ScreenCharactersWidth ]:<20>
 - [ScreenCharactersHeight ]:<4>
 - [ScreenPixelsWidth ]:<90>
 - [ScreenPixelsHeight ]:<40>
 - [ScreenBitDepth ]:<1>
 - [IsColor ]:<False>
 - [InputType ]:<telephoneKeypad>
 - [NumberOfSoftkeys ]:<2>
 - [MaximumSoftkeyLabelLength ]:<5>
 - [CanInitiateVoiceCall ]:<True>
 - [CanSendMail ]:<False>
 - [HasBackButton ]:<False>
 - [RendersWmlDoAcceptsInline ]:<False>
 - [RendersWmlSelectsAsMenuCards ]:<False>
 - [RendersBreaksAfterWmlAnchor ]:<True>
 - [RendersBreaksAfterWmlInput ]:<True>
 - [RendersBreakBeforeWmlSelectAndInput ]:<False>
 - [RequiresPhoneNumbersAsPlainText ]:<True>
 - [RequiresUrlEncodedPostfieldValues ]:<False>
 - [RequiredMetaTagNameValue ]:<>
 - [RendersBreaksAfterHtmlLists ]:<True>
 - [RequiresUniqueHtmlInputNames ]:<False>
 - [RequiresUniqueHtmlCheckboxNames ]:<False>
 - [SupportsCss ]:<False>
 - [HidesRightAlignedMultiselectScrollbars ]:<False>
 - [IsMobileDevice ]:<True>
 - [RequiresAttributeColonSubstitution ]:<False>
 - [CanRenderOneventAndPrevElementsTogether ]:<False>
 - [CanRenderInputAndSelectElementsTogether ]:<True>
 - [CanRenderAfterInputOrSelectElement ]:<True>
 - [CanRenderPostBackCards ]:<False>
 - [CanRenderMixedSelects ]:<True>
 - [CanCombineFormsInDeck ]:<True>
 - [CanRenderSetvarZeroWithMultiSelectionList ]:<True>
 - [SupportsImageSubmit ]:<False>
 - [RequiresUniqueFilePathSuffix ]:<True>
 - [RequiresNoBreakInFormatting ]:<False>
 - [RequiresLeadingPageBreak ]:<False>
 - [SupportsSelectMultiple ]:<True>
 - [SupportsBold ]:<False>
 - [SupportsItalic ]:<False>
 - [SupportsFontSize ]:<False>
 - [SupportsFontName ]:<False>
 - [SupportsFontColor ]:<True>
 - [SupportsBodyColor ]:<True>
 - [SupportsDivAlign ]:<True>
 - [SupportsDivNoWrap ]:<False>
 - [RequiresContentTypeMetaTag ]:<False>
 - [RequiresDBCSCharacter ]:<False>
 - [RequiresHtmlAdaptiveErrorReporting ]:<False>
 - [RequiresOutputOptimization ]:<False>
 - [SupportsAccesskeyAttribute ]:<False>
 - [SupportsInputIStyle ]:<False>
 - [SupportsInputMode ]:<False>
 - [SupportsIModeSymbols ]:<False>
 - [SupportsJPhoneSymbols ]:<False>
 - [SupportsJPhoneMultiMediaAttributes ]:<False>
 - [MaximumRenderedPageSize ]:<1397>
 - [RequiresSpecialViewStateEncoding ]:<False>
 - [SupportsQueryStringInFormAction ]:<True>
 - [SupportsCacheControlMetaTag ]:<True>
 - [SupportsUncheck ]:<True>
 - [CanRenderEmptySelects ]:<True>
 - [SupportsRedirectWithCookie ]:<True>
 - [SupportsEmptyStringInCookieValue ]:<True>
 - [DefaultSubmitButtonLimit ]:<1>
 - [ClrVersion ]:<0.0>
 - [Type ]:<Unknown>
 - [Browser ]:<Nokia>
 - [Version ]:<0.0>
 - [MajorVersion ]:<0>
 - [MinorVersion ]:<0>
 - [Platform ]:<Unknown>
 - [TagWriter ]:<System.Web.UI.Html32TextWriter>
 - [EcmaScriptVersion ]:<0.0>
 - [MSDomVersion ]:<0.0>
 - [W3CDomVersion ]:<0.0>
 - [Beta ]:<False>
 - [Crawler ]:<False>
 - [AOL ]:<False>
 - [Win16 ]:<False>
 - [Win32 ]:<False>
 - [Frames ]:<False>
 - [Tables ]:<False>
 - [Cookies ]:<False>
 - [VBScript ]:<False>
 - [JavaScript ]:<False>
 - [JavaApplets ]:<False>
 - [ActiveXControls ]:<False>
 - [BackgroundSounds ]:<False>
 - [CDF ]:<False>
 
- -============ 输出MobileCapabilities End ==============-


 

设备能力表格(FROM MSDN)

下面是asp.net mobile control所列出的设备属性表(来自于

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mwsdk/html/mwlrfDeviceSpecificElement.asp

):


Property


WML


Browser


Yes


CanCombineFormsInDeck


Yes


CanInitiateVoiceCall


Yes


CanRenderEmptySelects


Yes


CanRenderInputAndSelectElementsTogether


Yes


CanRenderMixedSelects


Yes


CanRenderOneventAndPrevElementsTogether


Yes


CanRenderPostbackCards


Yes


CanRenderSetvarZeroWithMultiSelectionList


Yes


CanSendMail


Yes


DefaultSubmitButtonLimit


Yes


GatewayMajorVersion


Yes


GatewayMinorVersion


Yes


GatewayVersion


Yes


HasBackButton


Yes


HidesRightAlignedMultiselectScrollbars


No


InputType


Yes


IsColor


Yes


IsMobileDevice


Yes


Item


Yes


MaximumRenderedPageSize


Yes


MaximumSoftKeyLabelLength


Yes


MobileDeviceManufacturer


Yes


MobileDeviceModel


Yes


NumberOfSoftkeys


Yes


PreferredImageMime


Yes


PreferredRenderingMime


Yes


PreferredRenderingType


Yes


RendersBreakBeforeWmlSelectAndInput


Yes


RendersBreaksAfterHtmlLists


No


RendersBreaksAfterWmlAnchor


Yes


RendersBreaksAfterWmlInput


Yes


RendersWmlDoAcceptsInline


Yes


RendersWmlSelectsAsMenuCards


Yes


RequiredMetaTagNameValue


No


RequiresContentTypeMetaTag


No


RequiresAttributeColonSubstitution


No


RequiresHtmlAdaptiveErrorReporting


Yes


RequiresLeadingPageBreak


Yes


RequiresNoBreakInFormatting


Yes


RequiresOutputOptimization


No


RequiresPhoneNumbersAsPlainText


Yes


RequiresSpecialViewStateEncoding


Yes


RequiresUniqueFilePathSuffix


Yes


RequiresUniqueHtmlCheckboxNames


No


RequiresUniqueHtmlInputNames


Yes


RequiresUrlEncodedPostfieldValues


Yes


ScreenBitDepth


Yes


ScreenCharactersHeight


Yes


ScreenCharactersWidth


Yes


ScreenPixelsHeight


Yes


ScreenPixelsWidth


Yes


SupportsAccesskeyAttribute


No


SupportsBodyColor


No


SupportsBold


No


SupportsCacheControlMetaTag


Yes


SupportsCss


Yes


SupportsDivAlign


No


SupportsDivNoWrap


No


SupportsFontColor


No


SupportsFontName


No


SupportsFontSize


No


SupportsImageSubmit


No


SupportsIModeSymbols


No


SupportsInputIStyle


No


SupportsInputMode


No


SupportsItalic


No


SupportsJPhoneMultiMediaAttributes


No


SupportsJPhoneSymbols


No


SupportsQueryStringInFormAction


Yes


SupportsSelectMultiple


No


SupportsUncheck


Yes

 

时间: 2024-12-10 19:12:22

[Wap] 识别访问手机的能力的相关文章

asp.net开发wap程序必备:识别来访手机品牌型号

我们在开发wap应用程序需要有识别来访手机品牌型号的功能,这样才可以更好的为用户提供更好的个性化服务,比如图片类型.屏幕尺寸.铃声类型等.      http协议中,User-Agent这个标头指示的浏览器信息,文章最后附加了常见的手机User-Agent.      每个厂家,甚至一个厂家多个品牌的User-Agent都没有一个统一命名标准,所以处理起来相当麻烦---不停的if.比如判断某个手机的品牌     If Request.UserAgent.ToUpper.StartsWith("M

.htaccess与php判断手机/电脑访问手机页面

首页页面为网站更目录m下,后门参数和pc页面参数一样的话就可以这样,否则可能需要修改一下. 手机访问电脑页面时跳转:  代码如下 复制代码 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /m RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|web

51-android.rules -- 一个文件搞定Ubuntu上Eclipse不识别Android手机的问题

项目主页:http://code.google.com/p/51-android/ 如果你在Ubuntu下用android真机开发android应用时,你可能会遇到一个问题.那就是,你的手机无法在eclipse中正确识别,导致无法正常安装调试android应用. 根据官方以及网上的资料,我总结出了彻底解决这个问题的方法.具体操作如下: 1.点击下载下面的文件,解压出来.   51-android.zip   23.9 KB 2.解压该文件.用文本编辑器打开"51-android.rules&qu

我们公司现在准备做一个wap版的手机商城,有些问题需要帮助,谢谢!

问题描述 我们公司现在准备做一个wap版的手机商城,有些问题需要帮助1.我们打算有vs2005开发.2.能说说具体的项目的搭建过程吗? 解决方案 解决方案二:windowsmobile5.0或者6.0数据库有专门的手机用数据库上网方式有两种cmwap/wapcmwap上网一般是0.005元/kgprs包月20/月解决方案三:yeness的回答好象和我的问题不相关啊.解决方案四:wap跟web实质上没什么区别.输出的语法不同而已.去看看wml教程就OK了.

苹果高通携手推人脸识别!手机指纹识别将被打入冷宫

本文讲的是苹果高通携手推人脸识别!手机指纹识别将被打入冷宫,现在的智能手机中都会标配一个功能,那就是指纹识别,小到千元机大到旗舰,这个功能早已被大家所习惯,手指轻轻一触碰,完全省去了输入密码的繁琐步骤. 技术是不断向前发展的,而指纹识别不会是终点,那么在生物识别技术在手机应用上,接下来要上位的是谁呢?人脸识别,这个加速普及干掉指纹识别的大旗最终还是会由苹果来扛起. 除了苹果,高通也在跟进人脸识别技术,比如他们最近推出的 Spectra 成像系统,而这个技术将嵌入到新一代骁龙旗舰级移动处理器中,从

解决iTunes无法识别iPhone手机问题

第一,我们检测一下数据线连接是否正确,如果连接正确的话我们还可以检测一下数据线是不是坏了,这个可以尝试拿一个正常的数据线与我们手机与电脑连接即可检测来了来了.   第二,如果不是数据线的问题,就检查一下iTunes是否为最新的版本,点开帮助,点击检查更新.如果不是最新版本,就更新一下iTunes.   第三,然后在打开界面我们点击 iTunes内部诊断.点开"帮助"-"诊断"如下图所示.   第四,设置好了我们再检查一下,如果还是不行我们可以把iTunes卸载再安装

如何通过程访问手机的通讯录?有没有知道的,听说j2me没有权限,有没有什么好的方法?

问题描述 如何通过程访问手机的通讯录?还有,j2me的加密通信有没有谁做过的,分享下经验:-) 解决方案 解决方案二:J2ME有个包叫做PIM,专门用于访问通讯录,待办事项什么的解决方案三:JSR75:PDAOptionalPackagesfortheJ2METMPlatform解决方案四:通过JSR75访问手机的通讯录

WAP页面在手机QQ浏览器上背景图不显示

问题描述 各位WAP高手帮帮忙,我做的wap页面在手机QQ浏览器上背景图不显示,在其他手机浏览器显示正常,这是什么问题导致的??? 解决方案 解决方案二:引用楼主gaofei019的回复: 各位WAP高手帮帮忙,我做的wap页面在手机QQ浏览器上背景图不显示,在其他手机浏览器显示正常,这是什么问题导致的??? 应该是兼容问题~·楼主好好查查代码吧解决方案三:楼主,你说的qq浏览器是在什么手机上?如果是塞班s60的话,确实是不支持的.塞班手机上的浏览器,如:ucweb和qq,以及其他的浏览器,基本

识别访问端的操作系统

//识别访问端的操作系统 function PDD() { //平台.设备和操作系统 var system = { win: false, mac: false, xll: false }; //检测平台 var p = navigator.platform; system.win = p.indexOf("Win") == 0; system.mac = p.indexOf("Mac") == 0; system.x11 = (p == "X11&quo