[CF Skills].NET CF3.5中确定设备的平台类型(版本号)

在.NET CF3.5中,可通过SystemSettings.Platform属性轻松识别设备平台类型,如PocketPC或Smartphone,并判断是否有电话功能。示例代码展示了如何根据这些信息确定具体的Windows Mobile版本。
在CF3.5以前的版本中,为了在托管代码中确定设备的平台类型(Smartphone?PPC?PPC Pone?),我们需要通过 P/Invoke调用SystemParametersInfo这个本地函数,详细可参考以下两篇文章:
https://blogs.msdn.com/netcfteam/archive/2006/09/15/756755.aspx
http://blogs.msdn.com/netcfteam/archive/2006/09/22/766343.aspx
 然而,在.NET CF3.5中新加入了一个叫SystemSettings.Platform 的属性(关于其他CF3.5的新特性参考这里),用于方便的获取基于WinCE的常见OS名称。
下面的代码段演示了如何方便的实现这一功能:
//SDF的OpenNETCF.EnvironmentEx.PlatformName也可以判断是PPC还是Smart Phone
//但是现在的.NET CF可以做得更好 
           if (SystemSettings.Platform == WinCEPlatform.PocketPC)
               platformName = "Windows Mobile " +
 (SystemState.PhoneRadioPresent ? "Professional" : "Classic");//有电话功能的为Professional
            else if (SystemSettings.Platform == WinCEPlatform.Smartphone)
                platformName = "Windows Mobile Standard";
            else
                platformName = "Not Windows Mobile";
同时需要添加对以下程序集的引用:

其中SystemState.PhoneRadioPresent 需CE5.0以上支持
有趣的是我在SAMSUNG i718上面测试成功返回"Windows Mobile Professional",但是在模拟器上测试所有的PPC模拟器却总是返回"Windows Mobile Classic"。
原来,在 Windows Mobile Professional SDK的模拟器上运行的时候, 需要先同Cellular Emulator连接,才能使PhoneRadioPresent 返回正确的值(缺省状态下认为模拟器没有电话功能),而 Cellular Emulator 正好可以用来模拟电话功能. 关于Cellular Emulator的使用可以参考这里
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值