c#如何确定智能手机是标准设备还是专业设备?

时间:2009-10-08 13:16:54

标签: c# windows-mobile detect

我使用SystemState.PhoneRadioPresent来确定设备是标准设备还是专业设备,但这不仅仅是为了确定它是Pocketpc还是智能手机。

我有一个没有触摸屏或鼠标的智能手机,我有两个GUI。一个用触摸屏或鼠标处理移动设备,另一个用键盘处理智能手机。

我如何确定它是什么类型的移动设备?

提前致谢

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

答案 2 :(得分:0)

您没有提到您要定位的.NET CF版本,因此我将涵盖所有情况: - )

对于.NET 1.3之前的版本,请查看我在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提供的链接,提供的信息也是正确的。这里的一些混淆可能是微软在过去几年中多次改变了他们的操作系统命名约定。

旧名称是Smartphone和PocketPC,它们映射到较新的名称,如下所示

SmartPhone = Windows Mobile Standard (no touchscreen)
PocketPC = Windows Mobile Professional (phone) or Windows Mobile Classic (no phone)

这些名称最近刚刚更改为“Windows Phone”。