0

我无法找出如何从 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 内置调制解调器

4

1 回答 1

0

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

这帮助我通过跨接口迭代然后调用 GetConnectionProfiles() 将接口作为参数传递,然后使用 IMbnConnectionProfile GetProfileXMLData 加载 XMLDocument 来找到 ProfileName(netsh mbn 显示配置文件)

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
于 2013-12-05T01:32:01.277 回答