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

<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

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

Code

日期

关键词

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


还可以进一步通过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></mypropertyinfo.length>

{

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+ " ]:");

}

}

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

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

输出的日志如下:

- -============ 输出MobileCapabilities Begin ==============-
- [MobileDeviceManufacturer ]:<nokia><br><span style="mso-spacerun: yes"></span>- [MobileDeviceModel ]:<unknown><br><span style="mso-spacerun: yes"></span>- [GatewayVersion ]:<nokia wap gateway><br><span style="mso-spacerun: yes"></span>- [GatewayMajorVersion ]:<br><span style="mso-spacerun: yes"></span>- [GatewayMinorVersion ]:<br><span style="mso-spacerun: yes"></span>- [PreferredRenderingType ]:<wml11><br><span style="mso-spacerun: yes"></span>- [PreferredRenderingMime ]:<text><br><strong><span style="FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'"><span style="mso-spacerun: yes"></span>- [PreferredImageMime ]:<image></image></span></strong><br><span style="mso-spacerun: yes"></span>- [ScreenCharactersWidth ]:<br><span style="mso-spacerun: yes"></span>- [ScreenCharactersHeight ]:<br><span style="mso-spacerun: yes"></span>- [ScreenPixelsWidth ]:<br><span style="mso-spacerun: yes"></span>- [ScreenPixelsHeight ]:<br><span style="mso-spacerun: yes"></span>- [ScreenBitDepth ]:<br><span style="mso-spacerun: yes"></span>- [IsColor ]:<false><br><span style="mso-spacerun: yes"></span>- [InputType ]:<telephonekeypad><br><span style="mso-spacerun: yes"></span>- [NumberOfSoftkeys ]:<br><span style="mso-spacerun: yes"></span>- [MaximumSoftkeyLabelLength ]:<br><span style="mso-spacerun: yes"></span>- [CanInitiateVoiceCall ]:<true><br><span style="mso-spacerun: yes"></span>- [CanSendMail ]:<false><br><span style="mso-spacerun: yes"></span>- [HasBackButton ]:<false><br><span style="mso-spacerun: yes"></span>- [RendersWmlDoAcceptsInline ]:<false><br><span style="mso-spacerun: yes"></span>- [RendersWmlSelectsAsMenuCards ]:<false><br><span style="mso-spacerun: yes"></span>- [RendersBreaksAfterWmlAnchor ]:<true><br><span style="mso-spacerun: yes"></span>- [RendersBreaksAfterWmlInput ]:<true><br><span style="mso-spacerun: yes"></span>- [RendersBreakBeforeWmlSelectAndInput ]:<false><br><span style="mso-spacerun: yes"></span>- [RequiresPhoneNumbersAsPlainText ]:<true><br><span style="mso-spacerun: yes"></span>- [RequiresUrlEncodedPostfieldValues ]:<false><br><span style="mso-spacerun: yes"></span>- [RequiredMetaTagNameValue ]:<br><span style="mso-spacerun: yes"></span>- [RendersBreaksAfterHtmlLists ]:<true><br><span style="mso-spacerun: yes"></span>- [RequiresUniqueHtmlInputNames ]:<false><br><span style="mso-spacerun: yes"></span>- [RequiresUniqueHtmlCheckboxNames ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsCss ]:<false><br><span style="mso-spacerun: yes"></span>- [HidesRightAlignedMultiselectScrollbars ]:<false><br><span style="mso-spacerun: yes"></span>- [IsMobileDevice ]:<true><br><span style="mso-spacerun: yes"></span>- [RequiresAttributeColonSubstitution ]:<false><br><span style="mso-spacerun: yes"></span>- [CanRenderOneventAndPrevElementsTogether ]:<false><br><span style="mso-spacerun: yes"></span>- [CanRenderInputAndSelectElementsTogether ]:<true><br><span style="mso-spacerun: yes"></span>- [CanRenderAfterInputOrSelectElement ]:<true><br><span style="mso-spacerun: yes"></span>- [CanRenderPostBackCards ]:<false><br><span style="mso-spacerun: yes"></span>- [CanRenderMixedSelects ]:<true><br><span style="mso-spacerun: yes"></span>- [CanCombineFormsInDeck ]:<true><br><span style="mso-spacerun: yes"></span>- [CanRenderSetvarZeroWithMultiSelectionList ]:<true><br><span style="mso-spacerun: yes"></span>- [SupportsImageSubmit ]:<false><br><span style="mso-spacerun: yes"></span>- [RequiresUniqueFilePathSuffix ]:<true><br><span style="mso-spacerun: yes"></span>- [RequiresNoBreakInFormatting ]:<false><br><span style="mso-spacerun: yes"></span>- [RequiresLeadingPageBreak ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsSelectMultiple ]:<true><br><span style="mso-spacerun: yes"></span>- [SupportsBold ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsItalic ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsFontSize ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsFontName ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsFontColor ]:<true><br><span style="mso-spacerun: yes"></span>- [SupportsBodyColor ]:<true><br><span style="mso-spacerun: yes"></span>- [SupportsDivAlign ]:<true><br><span style="mso-spacerun: yes"></span>- [SupportsDivNoWrap ]:<false><br><span style="mso-spacerun: yes"></span>- [RequiresContentTypeMetaTag ]:<false><br><span style="mso-spacerun: yes"></span>- [RequiresDBCSCharacter ]:<false><br><span style="mso-spacerun: yes"></span>- [RequiresHtmlAdaptiveErrorReporting ]:<false><br><span style="mso-spacerun: yes"></span>- [RequiresOutputOptimization ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsAccesskeyAttribute ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsInputIStyle ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsInputMode ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsIModeSymbols ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsJPhoneSymbols ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsJPhoneMultiMediaAttributes ]:<false><br><span style="mso-spacerun: yes"></span>- [MaximumRenderedPageSize ]:<br><span style="mso-spacerun: yes"></span>- [RequiresSpecialViewStateEncoding ]:<false><br><span style="mso-spacerun: yes"></span>- [SupportsQueryStringInFormAction ]:<true><br><span style="mso-spacerun: yes"></span>- [SupportsCacheControlMetaTag ]:<true><br><span style="mso-spacerun: yes"></span>- [SupportsUncheck ]:<true><br><span style="mso-spacerun: yes"></span>- [CanRenderEmptySelects ]:<true><br><span style="mso-spacerun: yes"></span>- [SupportsRedirectWithCookie ]:<true><br><span style="mso-spacerun: yes"></span>- [SupportsEmptyStringInCookieValue ]:<true><br><span style="mso-spacerun: yes"></span>- [DefaultSubmitButtonLimit ]:<br><span style="mso-spacerun: yes"></span>- [ClrVersion ]:<br><span style="mso-spacerun: yes"></span>- [Type ]:<unknown><br><span style="mso-spacerun: yes"></span>- [Browser ]:<nokia><br><span style="mso-spacerun: yes"></span>- [Version ]:<br><span style="mso-spacerun: yes"></span>- [MajorVersion ]:<br><span style="mso-spacerun: yes"></span>- [MinorVersion ]:<br><span style="mso-spacerun: yes"></span>- [Platform ]:<unknown><br><span style="mso-spacerun: yes"></span>- [TagWriter ]:<system.web.ui.html32textwriter><br><span style="mso-spacerun: yes"></span>- [EcmaScriptVersion ]:<br><span style="mso-spacerun: yes"></span>- [MSDomVersion ]:<br><span style="mso-spacerun: yes"></span>- [W3CDomVersion ]:<br><span style="mso-spacerun: yes"></span>- [Beta ]:<false><br><span style="mso-spacerun: yes"></span>- [Crawler ]:<false><br><span style="mso-spacerun: yes"></span>- [AOL ]:<false><br><span style="mso-spacerun: yes"></span>- [Win16 ]:<false><br><span style="mso-spacerun: yes"></span>- [Win32 ]:<false><br><span style="mso-spacerun: yes"></span>- [Frames ]:<false><br><span style="mso-spacerun: yes"></span>- [Tables ]:<false><br><span style="mso-spacerun: yes"></span>- [Cookies ]:<false><br><span style="mso-spacerun: yes"></span>- [VBScript ]:<false><br><span style="mso-spacerun: yes"></span>- [JavaScript ]:<false><br><span style="mso-spacerun: yes"></span>- [JavaApplets ]:<false><br><span style="mso-spacerun: yes"></span>- [ActiveXControls ]:<false><br><span style="mso-spacerun: yes"></span>- [BackgroundSounds ]:<false><br><span style="mso-spacerun: yes"></span>- [CDF ]:<false><br><span style="mso-spacerun: yes"></span><br>- -============ </false></false></false></false></false></false></false></false></false></false></false></false></false></false></system.web.ui.html32textwriter></unknown></nokia></unknown></true></true></true></true></true></true></false></false></false></false></false></false></false></false></false></false></false></false></true></true></true></false></false></false></false></true></false></false></true></false></true></true></true></false></true></true></false></false></true></false></false></false></false></true></false></true></false></true></true></false></false></false></false></true></telephonekeypad></false></text></wml11></nokia></unknown></nokia>
输出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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值