1

有没有一种可能的方法来检测我的手机已失去 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;
    }
} 
4

0 回答 0