本文共 974 字,大约阅读时间需要 3 分钟。
在CF3.5以前的版本中,为了在托管代码中确定设备的平台类型(Smartphone?PPC?PPC Pone?),我们需要通过 P/Invoke调用SystemParametersInfo这个本地函数,详细可参考以下两篇文章: 然而,在.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的使用可以参考 转载地址:http://jsyal.baihongyu.com/