C# Read Windows Mobile Broadband connection properties

后端 未结 5 2113
伪装坚强ぢ
伪装坚强ぢ 2020-12-29 14:58

First up, here\'s the background:

We have a Windows Forms application (written in C#, .NET Framework 3.5) currently running on full Windows 7 tablets, which have a 3

5条回答
  •  悲&欢浪女
    2020-12-29 15:34

    Respond to the connection events (events are registered in the above example):

        public class ConnectionEventsSink : IMbnConnectionEvents
        {
            public ConnectionEventsSink() { }
    
            public void OnConnectComplete(IMbnConnection connection, uint requestID, int status)
            {
                // Un-register the connect event - you might not want to do this, depends on your own requirements. Do do this you need the cookie uint from when the events were registered.
                MbnConnectionManager connMgr = new MbnConnectionManager();
                IConnectionPointContainer connPointContainer = connMgr as IConnectionPointContainer;
    
                Guid IID_IMbnConnectionEvents = typeof(IMbnConnectionEvents).GUID;
                IConnectionPoint connPoint;
                connPointContainer.FindConnectionPoint(ref IID_IMbnConnectionEvents, out connPoint);
    
                connPoint.Unadvise(cookie);
    
                switch (status)
                {
                    case 0:
                        MobileBroadbandTest.Connected = true;
                        MessageBox.Show("Connected");
                        break;
                    case -2141945334:
                        MessageBox.Show("There is no SIM in the device.");
                        break;
                    case -2141945328:
                        MessageBox.Show("A PIN is required for the operation to complete.");
                        break;
                    case -2141945335:
                        MessageBox.Show("The network service subscription has expired.");
                        break;
                    case -2141945337:
                        MessageBox.Show("The provider is not visible. This applies only to manual registration mode.");
                        break;
                    case -2141945340:
                        MessageBox.Show("The connection access string is not correct.");
                        break;
                    case -2141945333:
                        MessageBox.Show("An active voice call is in progress.");
                        break;
                    case -2141945339:
                        MessageBox.Show("There is already an Mobile Broadband context active. The Mobile Broadband service does not currently support multiple active contexts.");
                        break;
                    case -2141945336:
                        MessageBox.Show("The device radio is off.");
                        break;
                    case -2141945338:
                        MessageBox.Show("No active attached packet service is available.");
                        break;
                    case -2141945326:
                        MessageBox.Show("Generic Failure.");
                        break;
                    case -2141945320:
                        MessageBox.Show("Profile is invalid.");
                        break;
                    case -2141945319:
                        MessageBox.Show("Default profile exist.");
                        break;
                    case -2141945327:
                        MessageBox.Show("PIN is disabled.");
                        break;
                    case -2141945329:
                        MessageBox.Show("Pin is not supported.");
                        break;
                    case -2141945330:
                        MessageBox.Show("Providers not found.");
                        break;
                    case -2141945331:
                        MessageBox.Show("Device is not registered.");
                        break;
                    case -2141945332:
                        MessageBox.Show("Visible provider cache is invalid.");
                        break;
                    case -2141945341:
                        MessageBox.Show("Requested data class is not available.");
                        break;
                    case -2141945342:
                        MessageBox.Show("Bad SIM is inserted.");
                        break;
                    case -2141945343:
                        MessageBox.Show("Context is not activated.");
                        break;
    
                    default:
                        MessageBox.Show("Unexpected status: " + status.ToString());
                        break;
                }
            }
    
            public void OnVoiceCallStateChange(IMbnConnection connection)
            {
                // Do nothing
            }
    
            public void OnConnectStateChange(IMbnConnection connection)
            {
                // Do nothing
            }
    
            public void OnDisconnectComplete(IMbnConnection connection, uint requestID, int status)
            {
                // Do nothing
            }
    

    }

提交回复
热议问题