我们如何以编程方式检测BIS数据流量是通过运营商网络还是Wi-Fi路由。查看BB徽标点,我们可以看到,如果数据通过Wi-Fi路由,它将接近Wi-Fi指示符,如果数据通过运营商数据网络路由,则接近载波信号指示符。
有没有办法以编程方式检测到它?
答案 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
}
}