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

问题描述 投票:0回答:1

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

c# api mobile
1个回答
0
投票

此处提供的以编程方式配置连接的答案是我的解决方案: C# 读取 Windows Mobile 宽带连接属性

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

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
© www.soinside.com 2019 - 2024. All rights reserved.