IMbnInterface::GetPreferredProviders 方法 (mbnapi.h)

重要

从 Windows 10 版本 1803 开始,本部分所述的 Win32 API 将替换为 Windows.Networking.Connectivity 命名空间中的 Windows 运行时 API。

获取首选提供程序的列表。

语法

HRESULT GetPreferredProviders(
  [out, retval] SAFEARRAY **preferredProviders
);

参数

[out, retval] preferredProviders

指向包含首选提供程序列表 的MBN_PROVIDER 结构的数组的指针。 如果此方法返回 除 S_OK 以外的任何值,则此参数为 NULL。 当 GetPreferredProviders 返回 S_OK时,调用应用程序必须通过调用 SafeArrayDestroy 释放分配的内存。

返回值

此方法可以返回其中一个值。

返回代码 说明
S_OK
该方法已成功完成。 preferredProviders 包含有效值。
E_PENDING
该信息不可用。 移动宽带服务目前正在探测首选提供商的列表。 通过注册 IMbnInterfaceEventsOnPreferredProvidersChange 方法,调用应用程序可以在数据可用时收到通知。
E_MBN_PIN_REQUIRED
设备要求必须输入 PIN 才能执行此操作。
E_MBN_SIM_NOT_INSERTED
未插入 SIM 卡。
E_MBN_BAD_SIM
设备中插入了错误的 SIM 卡。
HRESULT_FROM_WIN32 (ERROR_READ_FAULT)
无法从 SIM 卡或设备内存中读取。 例如,SIM 没有预配首选提供商信息。
HRESULT_FROM_WIN32 (ERROR_NOT_SUPPORTED)
设备不支持此操作。 CDMA 设备将始终返回此值。

注解

GetPreferredProviders 返回存储在接口的首选提供程序列表中的提供程序列表。

对于 E_MBN_PIN_REQUIREDE_MBN_SIM_NOT_INSERTEDE_MBN_BAD_SIM的可恢复错误,当错误条件结束时,移动宽带服务将再次查询设备的提供程序列表。 例如,如果设备需要输入 PIN 才能获取提供程序列表,则 GetPreferredProviders 将返回 E_MBN_PIN_REQUIRED。 当应用程序输入 PIN 来解锁设备时,移动宽带服务将再次尝试从设备获取此信息。

当操作系统在发生可恢复错误后查询设备以获取提供程序列表时, GetPreferredProviders 会立即返回 E_PENDING。 完成新查询后,将使用适当的回调方法向调用应用程序发送通知。 例如,成功执行 PIN 解锁操作后,将调用 IMbnPinEventsOnEnterComplete 方法。 从 SIM 卡卡错误恢复后,将调用 IMbnInterfaceEventsOnReadyStateChange 方法。

移动宽带服务将通过调用 IMbnInterfaceEventsOnPreferredProvidersChange 方法更新有关任何新查询的状态的应用程序。

在某些情况下,可以通过短信或 OTA (无线更新) 通过网络更新设备的首选提供商列表。 操作系统将通过调用 IMbnInterfaceEventsOnPreferredProvidersChange 方法,通知应用程序首选提供程序列表中的任何更改。

要求

要求
最低受支持的客户端 Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器 无受支持的版本
目标平台 Windows
标头 mbnapi.h

另请参阅

IMbnInterface