0

我们如何以编程方式检测 BIS 数据流量是通过运营商网络还是 Wi-Fi 路由。看BB标志点,我们可以看到,如果数据通过Wi-Fi路由,它将在Wi-Fi指示灯附近,如果数据通过运营商数据网络路由,它将在运营商信号指示灯附近。

有没有办法以编程方式检测?

4

3 回答 3

2

您可以使用 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 连接的明显成本最低的方法。优先顺序是:无线旁路;无线上网; 无线运营商。

于 2012-12-11T19:44:28.497 回答
1

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
       }
}
于 2012-12-13T09:07:50.827 回答
1

尝试禁用 Wi-Fi:

Radio.deactivateWAFs(RadioInfo.WAF_WLAN);

也许您还可以检测 Wi-Fi 是否正在通话RadioInfo.getActiveWAFs,但是您如何知道使用该连接的应用程序是否是您的应用程序?

于 2012-12-12T13:57:46.890 回答