我们如何以编程方式检测BIS数据流量是通过运营商网络还是Wi-Fi路由的。查看BB徽标的圆点,我们可以看到,如果数据通过Wi-Fi路由,则位于Wi-Fi指示器附近;如果数据通过运营商数据网络路由,则位于载波信号指示器附近。
有没有一种方法可以通过编程来检测呢?
发布于 2012-12-13 17:07:51
要检测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
}
}
发布于 2012-12-12 03:44:28
您可以使用API来确定特定服务是否能够承载BIS-B或BES流量。由于BIS-B和BES是通过最便宜的方式自动路由的,如果Wi-Fi能够承载它,BIS-B将使用Wi-Fi。
史密斯先生的评论中的KB article指定BIS-B访问可与限定数据计划一起使用(也称为BlackBerry数据计划、BlackBerry螺栓连接等
“要通过Wi-Fi连接到BlackBerry数据服务以实现个人识别码信息和BlackBerry互联网服务连接,BlackBerry智能手机需要无线服务提供商提供的BlackBerry数据计划...”
)。给定一个合格的数据计划,BlackBerry互联网服务(BIS)在图表中指定的所有条件下都可用。如果Wi-Fi连接支持连接到中华民国的BlackBerry路由器,那么除非有更好的选择,否则BIS将通过该连接进行传输。一个这样的更好的选择也被称为“无线旁路”。当BlackBerry (通过USB或BlueTooth)连接到安装了互联网访问和桌面管理器的电脑时,BlackBerry将使用电脑的互联网连接。
知识库文章还提到了BES。将BIS/BIS-B视为托管在RIM运营中心的BES功能的子集通常很有帮助。BES和BIS/BIS-B都使用BlackBerry路由器功能。BlackBerry将自动寻找与BlackBerry路由器连接的明显最低成本方法。按偏好顺序为:无线旁路;Wi-Fi;无线运营商。
发布于 2012-12-12 21:57:47
尝试禁用Wi-Fi:
Radio.deactivateWAFs(RadioInfo.WAF_WLAN);
也许你也可以检测Wi-Fi是否正在调用RadioInfo.getActiveWAFs
,但你怎么知道是不是你的应用程序在使用连接呢?
https://stackoverflow.com/questions/13824618
复制相似问题