我在 WindowsCE 5.0 设备上使用 CompactFramework 3.5 来构建一个应用程序,该应用程序应该使用主动同步的连接来获取一些数据。
我如何检测移动设备是否在通讯座中并具有活动连接?是否有某种 PInvoke 调用?
我在 WindowsCE 5.0 设备上使用 CompactFramework 3.5 来构建一个应用程序,该应用程序应该使用主动同步的连接来获取一些数据。
我如何检测移动设备是否在通讯座中并具有活动连接?是否有某种 PInvoke 调用?
取决于您要检测连接的哪一侧。对于桌面端,您可以连接一些 ActiveSync 事件。免费的开源桌面通信库可以为您提供这些。
对于设备,有几种方法。对于 WinMo,这很容易 - 您可以通过Microsoft.WindowsMobile.Status 类点击来使用状态和通知代理。
对于通用 CE 设备,您可以使用 NOTIFICATION_EVENT_RS232_DETECTED 标志 P/Invoke CeRunAppAtEvent(它可以设置事件,而不仅仅是运行应用程序)。这些 API 也包含在 OpenNETCF 的智能设备框架中,特别是在DeviceManagement.SerialDeviceDetected 事件中
您还可以使用以下方法检测通讯座:
get
{
return SystemState.GetValue(SystemProperty.CradlePresent).Equals(1);
}
那么好吧
get
{
return (int)SystemState.GetValue(SystemProperty.ConnectionsDesktopCount) > 0;
}