如何通过编程方式检测Bis-B是通过载波还是Wifi?

时间:2012-12-11 16:43:46

标签: blackberry

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

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

3 个答案:

答案 0 :(得分:2)

您可以使用API​​来确定特定服务是否能够承载BIS-B或BES流量。由于BIS-B和BES通过最便宜的方式自动路由,如果Wi-Fi能够携带它,BIS-B将通过Wi-Fi进行。

Mister Smiths评论中的KB article指定BIS-B访问可用于合格数据计划(AKA,BlackBerry数据计划,BlackBerry bolt等等)

  

“通过Wi-Fi连接至BlackBerry Data Services以获取PIN码   消息和BlackBerry Internet Service连接,BlackBerry   智能手机需要来自无线服务的BlackBerry数据计划   提供商...“

)。鉴于合格的数据计划,BlackBerry Internet Service(BIS)可在图表中指定的所有条件下使用。如果Wi-Fi连接支持与ROC上的BlackBerry路由器的连接,则BIS将通过该连接进行传输,除非有更好的选项可用。一个这样的更好的选择也被称为“无线旁路”。当BlackBerry连接(通过USB或蓝牙)连接到安装了Internet和桌面管理器的PC时,BlackBerry将使用PC互联网连接。

KB文章还提到了BES。将BIS / BIS-B视为RIM运营中心托管的BES功能的子集通常很有帮助。 BES和BIS / BIS-B都使用BlackBerry路由器功能。 BlackBerry将自动寻找与BlackBerry Router BES或BIS / BIS-B连接的明显最低成本方法。按优先顺序排列:无线旁路;无线上网;无线运营商。

答案 1 :(得分:1)

尝试禁用Wifi:

Radio.deactivateWAFs(RadioInfo.WAF_WLAN);

也许您还可以检测到Wi-Fi是否处于活动状态,正在调用RadioInfo.getActiveWAFs,但您如何知道您的应用是否是使用此连接的应用?

答案 2 :(得分:1)

要检测BIS是否通过Wi-Fi,请使用

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
       }
}