windows mobile 6.5背光事件断开插座

本文关键字:事件 断开 插座 mobile windows | 更新日期: 2023-09-27 18:19:28

我正在为仓库开发一个windows 6.5移动应用程序。我通过TCP连接到服务器,在背光熄灭之前一切正常。
即使我没有发送任何内容,socket.IO异常也会抛出(客户端中止连接),并且我的服务器应用程序会将客户端从池中删除。

我的项目需要处理长时间连接的客户端(通常为8个工作小时)。有什么方法可以检测到那个事件吗
我使用的是c#windows表单和.net 3.5

(我只记得这个.LostFocus属性,但它没有按预期工作)。

@编辑

最后,我通过处理插座并重新连接解决了这个问题。如果有人需要检测它,只需这样做:(不是最干净的,但有效)

try
 {
// let it crash
 sthfailed = pollfailed = Form1.clientSocket.Client.Poll(10, SelectMode.SelectError);
}
catch (SocketException u)
                {
                    progress++;}
try
{    //this is the easiest way, let it crash n detect it
     if (Form1.clientSocket.Client.Available == 0)
                        ;
}
catch (Exception h)
{ progress++; }   //if both 'try' blocks have failed its probably due to power state

当电源状态改变时,通过设置的bool变量进行确认

OpenNETCF.WindowsCE.PowerManagement.PowerDown += new DeviceNotification(PowerManagement_PowerDown);

windows mobile 6.5背光事件断开插座

这些移动设备试图节省电力以延长电池寿命。从"全开"到"全关"有不同的PowerState(http://msdn.microsoft.com/en-us/library/aa932261.aspx和http://msdn.microsoft.com/en-us/library/aa930499.aspx)。OEM可以定义哪些设备将在哪个PowerState内供电。

我看到了不同的可能解决方案:

  1. 避免设备更改电源状态,并从以下代码设置PowerRequirement:http://msdn.microsoft.com/en-us/library/ms920689.aspx

  2. 更改不同设备的电池空闲超时和(可能可用的)电源设置。您可以将PowerRequirement设置为"全开",但可以处理代码中的空闲时间并降低背光。

  3. 更改注册表,将网络设备的设备电源状态设置为当系统电源状态进入挂起状态时不进入挂起。您可以使用注册表将设备电源状态映射到系统电源状态:http://msdn.microsoft.com/en-us/library/aa920052.aspx

  4. 使您的应用程序"系统电源状态感知",并在设备挂起/恢复时关闭/重新打开插座:http://msdn.microsoft.com/en-us/library/ms919833.aspx.我在一个串行端口到键盘的楔形应用程序中使用了这种方法。

另请参阅BatteryLoghttp://www.hjgode.de/wp/2013/12/07/windows-mobile-some-logging-tools/了解系统在改变电源状态时会做什么。

也许还有更多的解决方案。。。