移动宽带 - 如何获取服务提供商名称

时间:2013-06-24 15:03:52

标签: c# api mobile

我无法了解如何从Windows 7移动宽带API获取服务提供商名称。 provider.providerName总是返回一个空字符串,但是英国的EE的providerID是正确的(23430)。

下面显示了用于获取此信息的片段。 Mbn接口的所有其他方面都在起作用 包括配置文件等,但我无法找到如何获取名称!

我错过了什么吗?有人可以帮我解决我的最后一期吗?

注意:Windows VAN会显示服务提供商。

我非常感谢

萨拉

///
/// Check the reported state of this interface

    switch (readyState)
    {
        case MBN_READY_STATE.MBN_READY_STATE_INITIALIZED:

         /// interface is initialised and has active SIM
         /// so lets get service providor information
         /// 
         MBN_PROVIDER provider = mobileInterface.GetHomeProvider();

         mi.Provider = provider.providerName;       // Always ""
         mi.ProviderID = provider.providerID;       // but this is correct
         mi.ProviderState = provider.providerState;     // as is all this
         mi.Signaldbm = mbnGetSignal(mi.InterfaceID);
         mi.Signalbar = mbnConvertSignal(mi.Signaldbm);
         mi.Message = "Ready";
         break;

系统设置

Windows 7联想笔记本电脑,F3507g内置调制解调器

1 个答案:

答案 0 :(得分:0)

此处提供的以编程方式配置连接的答案是我的解决方案: C# Read Windows Mobile Broadband connection properties

这帮助我通过遍历接口然后调用GetConnectionProfiles()将接口作为参数传递,然后使用IMbnConnectionProfile GetProfileXMLData

加载XMLDocument来帮助我找到ProfileName(netsh mbn show profiles)

ProfileName位于XMLDocument [“MbnProfile”] [“Name”]。InnerText

看起来很多工作但是如果你只需要担心一个接口和一个配置文件,你就可以使用每个数组的第一个元素。我会粘贴我的代码,但它是VB

Dim mcpm As MbnConnectionProfileManager = New MbnConnectionProfileManager()
Dim imcpm As IMbnConnectionProfileManager = DirectCast(mcpm,  IMbnConnectionProfileManager)
Dim connectionProfiles() As IMbnConnectionProfile


Dim mim As MbnInterfaceManager = New MbnInterfaceManager()
Dim imim As IMbnInterfaceManager = DirectCast(mim, IMbnInterfaceManager)
Dim interfaceArray() As IMbnInterface = imim.GetInterfaces()

For Each i As IMbnInterface In interfaceArray
    connectionProfiles = imcpm.GetConnectionProfiles(i)
    For Each c As IMbnConnectionProfile In connectionProfiles
        Dim doc As System.Xml.XmlDocument = New System.Xml.XmlDocument()
        doc.LoadXml(c.GetProfileXmlData())

        cmbMBNProfileName.Items.Add(doc("MBNProfile")("Name").InnerText)
    Next
Next