有没有一种可能的方法来检测我的手机已失去 3G 数据连接(不是 WIFI)并注册某种无数据事件以安排并发送到远程服务器。
我发现了 MConnectionMonitorObserver 的使用(请参阅下面的代码),但我真的不知道应该使用哪种情况来触发所需的事件:它是 EConnMonStatusUnattached 还是 EConnMonStatusSuspended 还是 EConnMonPacketDataUnavailable ?
void ConnectionObserver::EventL(const CConnMonEventBase& aEvent )
{
switch(aEvent.EventType())
{
case EConnMonConnectionStatusChange:
{
CConnMonConnectionStatusChange* realEvent;
realEvent = (CConnMonConnectionStatusChange*) &aEvent;
TInt connectionStatus = realEvent->ConnectionStatus();
if (connectionStatus == EConnMonStatusNotAvailable)
return;
switch(connectionStatus)
{
case EConnMonStatusActive:
//Connect status is active
SaveConnectionEvent("Connected");
break;
case EConnMonStatusUnattached:
//Connect status is disconnected
SaveConnectionEvent("Disconnected");
break;
case EConnMonStatusAttached:
//Connect status is connecting
SaveConnectionEvent("Connecting");
break;
case EConnMonStatusSuspended:
//Connect status is suspended
SaveConnectionEvent("Suspended");
break;
}
}
break;
case EConnMonPacketDataAvailable:
{
SaveConnectionEvent("PDPAvailable");
}
break;
case EConnMonPacketDataUnavailable:
{
SaveConnectionEvent("PDPUnavailable");
}
break;
default:
break;
}
}