我们如何以编程方式检测 BIS 数据流量是通过运营商网络还是 Wi-Fi 路由。看BB标志点,我们可以看到,如果数据通过Wi-Fi路由,它将在Wi-Fi指示灯附近,如果数据通过运营商数据网络路由,它将在运营商信号指示灯附近。
有没有办法以编程方式检测?
我们如何以编程方式检测 BIS 数据流量是通过运营商网络还是 Wi-Fi 路由。看BB标志点,我们可以看到,如果数据通过Wi-Fi路由,它将在Wi-Fi指示灯附近,如果数据通过运营商数据网络路由,它将在运营商信号指示灯附近。
有没有办法以编程方式检测?
您可以使用 API 来确定特定服务是否能够承载 BIS-B 或 BES 流量。由于 BIS-B 和 BES 是通过最便宜的方式自动路由的,如果 Wi-Fi 能够承载它,BIS-B 将通过 Wi-Fi 进行。
史密斯先生评论中的知识库文章指定 BIS-B 访问可用于符合条件的数据计划(AKA BlackBerry 数据计划、BlackBerry bolt on 等)
“要通过 Wi-Fi 连接到 BlackBerry 数据服务以进行 PIN 消息传递和 BlackBerry Internet Service 连接,BlackBerry 智能手机需要无线服务提供商提供的 BlackBerry 数据计划......”
)。鉴于符合条件的数据计划 BlackBerry Internet Service (BIS) 在图表中指定的所有条件下均可用。如果 Wi-Fi 连接支持与 ROC 处的 BlackBerry 路由器的连接,则 BIS 将通过该连接传输,除非有更好的选择。一种更好的选择也称为“无线旁路”。当黑莓(通过 USB 或蓝牙)连接到安装了 Internet 访问和桌面管理器的 PC 时,黑莓将使用 PC 的 Internet 连接。
知识库文章还提到了 BES。将 BIS/BIS-B 视为托管在 RIM 运营中心的 BES 功能的子集通常会有所帮助。BES 和 BIS/BIS-B 都使用了 BlackBerry 路由器功能。黑莓将自动寻找与黑莓路由器 BES 或 BIS/BIS-B 连接的明显成本最低的方法。优先顺序是:无线旁路;无线上网; 无线运营商。
To detect whether BIS is going through Wi-Fi, use
if (CoverageInfo.isCoverageSufficient(CoverageInfo.COVERAGE_BIS_B)) {
if (CoverageInfo.isCoverageSufficient(CoverageInfo.COVERAGE_BIS_B, RadioInfo.WAF_WLAN, false))
{
//BIS-B going through wifi
}
else
{
//BIS-B going through carrier
}
}
尝试禁用 Wi-Fi:
Radio.deactivateWAFs(RadioInfo.WAF_WLAN);
也许您还可以检测 Wi-Fi 是否正在通话RadioInfo.getActiveWAFs
,但是您如何知道使用该连接的应用程序是否是您的应用程序?