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

在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的使用可以参考这里
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值