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

 

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

Code

日期<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

关键词

codeproject.com

2005-7-28

Wap ASP.NET MobileCapabilities

 

概念

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

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

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

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

 

编写者

日期

关键词

郑昀@ultrapower

2005-7-28

Wap ASP.NET MobileCapabilities

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值