如何使用 MBN 在 Windows 10 中以编程方式发送和接收短信?
How to send and receive SMS programmatically in Windows 10 using MBN?
我们有一个程序可以通过 MBN IMbnSms 接口和 2G/3G/4G 调制解调器发送和接收 SMS 消息。我们的代码在 Windows 7 和 Windows 8.x 中有效,但在 Windows 10 中失败。
IMbnSms.GetSmsStatus() 总是 returns 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 调用它。
Microsoft 使用我在 7 日获得的 Windows 10 更新包解决了这个问题。我用几张数据卡重新测试了一下,可以用了
我们有一个程序可以通过 MBN IMbnSms 接口和 2G/3G/4G 调制解调器发送和接收 SMS 消息。我们的代码在 Windows 7 和 Windows 8.x 中有效,但在 Windows 10 中失败。 IMbnSms.GetSmsStatus() 总是 returns 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 调用它。
Microsoft 使用我在 7 日获得的 Windows 10 更新包解决了这个问题。我用几张数据卡重新测试了一下,可以用了