IMbnMultiCarrier::GetPreferredProviders 方法 (mbnapi.h)

重要

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

获取多运营商设备的当前区域中可见的已订阅提供商列表,减去当前注册的提供商。

语法

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

parameters

[out, retval] preferredMulticarrierProviders

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

返回值

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

返回代码 说明
S_OK
该方法已成功完成。 preferredMultiCarrierProviders 包含有效值。
E_PENDING
该信息不可用。 移动宽带服务当前正在探测首选提供商的列表。 当数据可用时,调用应用程序可以通过注册 IMbnMultiCarrierEventsOnPreferredProvidersChange 方法收到通知。
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 设备将始终返回此值。
HRESULT_FROM_WIN32 (ERROR_NOT_SUPPORTED)
设备不支持此操作。 这可能由不支持多运营商的设备返回。

注解

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

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

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

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

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

如果用户具有多个订阅 (至少多个) 或者设备已为首选网络预先预配且位于任何网络的覆盖区域,则提供首选提供程序列表。 即使用户已订阅多个网络且不在这些覆盖区域之外,此列表也可能为空。 此列表将包含用户已订阅或设备已预先预配的所有当前可见网络,但当前注册的网络除外。

预配还可能导致将新的主提供商添加到多运营商设备上的现有首选列表。 这是使用 SetHomeProvider 完成的

要求

   
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 无受支持的版本
目标平台 Windows
标头 mbnapi.h

另请参阅

IMbnMultiCarrier