c # как определить, является ли смартфон стандартным или профессиональным устройством? - PullRequest
1 голос
/ 08 октября 2009

Я использовал SystemState.PhoneRadioPresent для определения, является ли устройство стандартным или профессиональным, но не для того, чтобы определить, является ли он карманным ПК или смартфоном.

У меня есть смартфон без сенсорного экрана или мыши, и у меня есть два графических интерфейса. Один, который обрабатывает мобильные устройства с сенсорным экраном или мышью, а другой - со смартфонами только с клавиатуры.

Как я могу определить, какое это мобильное устройство?

заранее спасибо

Ответы [ 3 ]

2 голосов
/ 08 октября 2009
0 голосов
/ 21 октября 2009

Вы не упоминаете, на какую версию .NET CF вы нацелены, поэтому я рассмотрю все случаи: -)

Для предварительной версии .NET CF 3.5 ознакомьтесь с моим сообщением в блоге "На каком устройстве работает мое приложение", доступным по адресу http://www.christec.co.nz/blog/archives/77.. Оно охватывает ряд сценариев определения типа платформы / устройства.

В вашем случае P / Invoke 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 за последние несколько лет несколько раз меняла свои соглашения об именах операционных систем.

Старыми именами были Смартфон и PocketPC, которые соответствуют новым именам следующим образом

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

Эти имена только недавно изменились на "Windows Phone".

...