如何检测移动设备上的ActiveSync连接?

时间:2009-02-12 15:35:12

标签: windows-mobile compact-framework pinvoke

我在WindowsCE 5.0设备上使用CompactFramework 3.5来构建应该使用主动同步连接来获取一些数据的应用程序。

如何检测移动设备是否在底座中并且是否具有活动连接?是否有某种PInvoke呼叫?

2 个答案:

答案 0 :(得分:3)

取决于您要检测连接的哪一方。对于桌面端,您可以挂钩一些ActiveSync事件。免费的开源Desktop Communication library可以帮助您。

对于设备,有几种方法。对于WinMo,它很简单 - 您可以通过Microsoft.WindowsMobile.Status class点击来使用状态和通知代理。

对于通用CE设备,您可以使用NOTIFICATION_EVENT_RS232_DETECTED标志P / Invoke CeRunAppAtEvent(可以设置事件,而不仅仅是运行应用程序)。这些API也包含在OpenNETCF的Smart Device Framework中,特别是在DeviceManagement.SerialDeviceDetected event

答案 1 :(得分:-1)

你也可以用这个探测摇篮:

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

好吧,那么

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