Как обнаружить соединение ActiveSync на мобильном устройстве? - PullRequest
4 голосов
/ 12 февраля 2009

Я использую CompactFramework 3.5 на устройстве WindowsCE 5.0 для создания приложения, которое должно использовать соединение с активной синхронизацией для получения некоторых данных.

Как я могу определить, находится ли мобильное устройство в базовой станции и имеет ли оно активное соединение? Для этого есть какой-то вызов PInvoke?

Ответы [ 2 ]

3 голосов
/ 12 февраля 2009

Зависит от того, с какой стороны вы хотите обнаружить соединение. Для настольных компьютеров есть некоторые события ActiveSync, к которым вы можете подключиться. Бесплатная библиотека с открытым исходным кодом Настольная коммуникационная библиотека может вам помочь.

Для устройства есть несколько способов. Для WinMo это просто - вы можете использовать брокер состояния и уведомлений, нажав через Microsoft.WindowsMobile.Status class .

Для стандартных устройств CE вы можете P / Invoke CeRunAppAtEvent (который может устанавливать событие, а не просто запускать приложение) с флагом NOTIFICATION_EVENT_RS232_DETECTED. Эти API также включены в Smart Device Framework OpenNETCF, в частности в событие DeviceManagement.SerialDeviceDetected

0 голосов
/ 26 января 2016

Вы также можете обнаружить колыбель с помощью этого:

get
{
  return SystemState.GetValue(SystemProperty.CradlePresent).Equals(1);
}

Ну ладно, тогда

get
        {
            return  (int)SystemState.GetValue(SystemProperty.ConnectionsDesktopCount) > 0;
        }
...