我想要实现的功能是:
=> 如果WiFi已启用且处于活动状态,则启动一个意图(实际上是一个WebView,它获取其内容=>我的应用程序在Web上的指令)
=> 如果没有,则我将启动另一个意图,以便我不会显示带有“网页不可用...网页http://www.mywebsite.com可能暂时关闭或已移动...”的WebView
我最初考虑使用
if (wifi.isWifiEnabled())
但这并不表示Wifi连接是否处于活动状态。它只表示用户已打开开关。设备可能已连接,也可能未连接... 这正确吗?
然后我尝试使用:
if (wifi.getConnectionInfo().getSSID()!= null)
但我注意到,即使连接已丢失或已禁用,它也会返回一个字符串...?
那么我该怎么做呢?
wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
Intent intent_instructions;
if (wifi.getConnectionInfo().getSSID()!= null){
Log.i("Hub", "WiFi is enabled AND active !");
Log.i("Hub", "SSID = "+wifi.getConnectionInfo().getSSID());
intent_instructions = new Intent(this, Instructions.class);
}else{
Log.i("Hub", "NO WiFi");
intent_instructions = new Intent(this, Instructions_No_WiFi.class);
}
this.startActivity(intent_instructions);
在启动一个intent之前,有没有一种更通用的方法来测试设备是否通过Wifi、3G等连接到互联网的方式?
提前感谢你的帮助。