我用SystemState.PhoneRadioPresent来判断设备是标准的还是专业的,但这不仅仅是为了判断它是掌上电脑还是智能手机。
我有一部没有触摸屏或鼠标的智能手机,我有两个GUI,一个用来处理有触摸屏或鼠标的移动设备,另一个用来处理只有键盘的智能手机。
如何确定是哪种类型的移动设备?
提前感谢
发布于 2009-10-08 14:02:12
How to: Get the Device Platform
发布于 2009-10-08 22:01:48
How Do I: Programmatically Determine the Windows Mobile Device Type Using .NET Compact Framework 3.5?
发布于 2009-10-21 03:37:52
您没有提到您的目标.NET CF的哪个版本,因此我将涵盖所有情况:-)
对于.NET CF3.5之前的版本,可以在http://www.christec.co.nz/blog/archives/77上查看我的博客文章“我的应用程序运行在什么设备上”。它涵盖了许多平台/设备类型检测场景。
在本例中,P/调用SystemParametersInfo API并请求SPI_GETPLATFORMTYPE参数。您将得到一个字符串,它是"SmartPhone“(Windows Mobile Standard)或"PocketPC”(Windows Mobile Professional或Classic)。
可以从我提到的博客文章中下载一个示例应用程序。
如果你使用的是.NET CF 3.5,那就更容易了,因为BCL已经更新了,包含了这个方便的特性。看一看SystemState.Platform属性。它是一个简单的枚举类型,具有WinCEPlatform.Smartphone和WinCEPlatform.PocketPC等值。
即
if (SystemSettings.Platform == WinCEPlatform.Smartphone)
MessageBox.Show("I am on a standard device");
else
MessageBox.Show("I am on a professional or classic device");
查看hjb417提供的链接,那里提供的信息也是正确的。这里的一些混淆可能是Microsoft在过去几年中多次更改其操作系统命名约定的事实。
旧的名称是Smartphone和PocketPC,它们映射到新的名称如下
SmartPhone = Windows Mobile Standard (no touchscreen)
PocketPC = Windows Mobile Professional (phone) or Windows Mobile Classic (no phone)
这些名字最近又被改成了"Windows Phone“。
https://stackoverflow.com/questions/1537744
复制相似问题