0

我们有一个通过 MBN IMbnSms 接口和 2G/3G/4G 调制解调器发送和接收 SMS 消息的程序。我们的代码在 Windows 7 和 Windows 8.x 中工作,但在 Windows 10 中失败。IMbnSms.GetSmsStatus() 始终返回 0x8000000A (E_PENDING) 错误,即使调制解调器已在网络上驻留 10 分钟。IMbnSms.SmsSendPdu() 在 OnSmsSendComplete 事件中获取 E_MBN_FAILURE。

这是重现此问题的 GetSmsStatus() 的简单测试代码:

    using MbnApi;
    using System;

    namespace GetSmsStatusTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                GetSmsStatus(args[0]);
            }

            static void GetSmsStatus(string interfaceID)
            {
                try
                {
                    MbnInterfaceManager mbnInfMgr = new MbnInterfaceManager();
                    IMbnInterfaceManager infManager = (IMbnInterfaceManager)mbnInfMgr;

                    //obtain the IMbnInterface passing interfaceID
                    IMbnInterface mbnInterface = infManager.GetInterface(interfaceID);
                    IMbnSms mbnSms = mbnInterface as IMbnSms;
                    if (mbnSms == null)
                    {
                        Console.WriteLine("Got no IMbnSms");
                        return;
                    }
                    MBN_SMS_STATUS_INFO mbnSmsStatusInfo;
                    mbnSms.GetSmsStatus(out mbnSmsStatusInfo);
                    Console.WriteLine("flag={0}, index={1}", mbnSmsStatusInfo.flag, mbnSmsStatusInfo.messageIndex);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }   
            }
    }

使用可以通过“netsh mbn sho int”获得的网络接口 GUID 调用它。

4

1 回答 1

2

微软用我 7 日拿到的 Windows 10 更新包解决了这个问题。我用几张数据卡重新测试了它,它现在可以工作了。

于 2015-08-10T05:47:59.477 回答