2009-10-08 66 views
1

我已經使用SystemState.PhoneRadioPresent來確定設備是標準設備還是專業設備,但不僅僅用於確定它是否爲pocketpc或智能手機。c#如何確定智能手機是標準設備還是專業設備?

我有一個沒有觸摸屏或鼠標的智能手機,我有兩個GUI。一個用觸摸屏或鼠標處理移動設備,另一個用鍵盤處理智能手機。

我如何確定它是什麼樣的移動設備?

在此先感謝

回答

2
+0

但這不是我想要的。我可以使用SystemState.PhoneRadioPresent。 我需要知道的是手機是標準手機還是專業手機。 – Ikky

0

你沒有提到的.NET CF的版本,你的目標,所以我會涵蓋所有情況的:-)

對於.NET CF 3.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的信息提供的鏈接提供有也是正確的。這裏的一些混淆可能是微軟在過去幾年中多次改變操作系統命名約定。

舊的名字是智能手機和掌上電腦,它映射到新的名稱如下

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

這些名字都剛剛再次更改爲「Windows Phone」的。

相關問題