0

Windows 7 モバイル ブロードバンド API からサービス プロバイダー名を取得する方法がわかりません。provider.providerName は常に null 文字列を返しますが、providerID はここ英国の EE では正しい (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 Lenovo ラップトップ、F3507g 内蔵モデム

4

1 に答える 1

0

プログラムで接続を構成するためにここで提供された答えは、私の解決策でした: C# Read Windows Mobile Broadband connection properties

これにより、インターフェイス間で反復処理を行い、GetConnectionProfiles() を呼び出してインターフェイスをパラメーターとして渡し、IMbnConnectionProfile GetProfileXMLData を使用して XMLDocument を読み込むことで、ProfileName (netsh mbn show profiles) を見つけることができました。

ProfileName は XMLDocument["MbnProfile"]["Name"].InnerText にあります。

大変な作業のように思えますが、1 つのインターフェースと 1 つのプロファイルだけを気にする必要がある場合は、各配列の最初の要素を使用できます。コードを貼り付けますが、それは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 に答える