Как программно отправлять и получать СМС в Windows 10, используя MBN?

У нас есть программа, которая отправляет и получает SMS-сообщения через интерфейс MBN IMbnSms и модем 2G/3G/4G. Наш код работает в Windows 7 и Windows 8.x, но не работает в Windows 10. IMbnSms.GetSmsStatus() всегда возвращает ошибку 0x8000000A (E_PENDING), даже если модем находится в сети в течение 10 минут. IMbnSms.SmsSendPdu() получает E_MBN_FAILURE в событии OnSmsSendComplete.

Вот простой тестовый код для 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);
                }   
            }
    }

Назовите его с GUID сетевого интерфейса, который вы можете получить с помощью "netsh mbn sho int".

1 ответ

Решение

Microsoft решила эту проблему с помощью пакета обновления Windows 10, который я получил 7-го числа. Я перепроверил это с несколькими карточками данных, теперь это работает.

Другие вопросы по тегам