我使用下面的函数检查到WiFi热点的连接:
public boolean IsWiFiConnected(){
List<WifiConfiguration> wifiConfigList = wifiManager.getConfiguredNetworks();
boolean retVal=false;
for(WifiConfiguration wifiConf : wifiConfigList){
if(wifiConf.status==WifiConfiguration.Status.CURRENT){
retVal=true;
break;
}
}
return retVal;
}
在android 4.0中,它总是返回false。它在以前的版本上工作得很好。谢谢
发布于 2012-03-26 14:11:27
有一种比你的方法更快更可靠的方法。
public boolean IsWiFiConnected() {
ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo netInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return netInfo.isConnected();
}
发布于 2012-03-26 16:54:11
只是扩展一下gabriel的答案,因为它可能值得检查用户是否有任何数据连接,即WiFi或数据。这还将显示一个对话框,询问用户是否要使用意图打开WiFi。希望这能对你有所帮助!
private boolean haveNetworkConnection() {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
haveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
haveConnectedMobile = true;
}
if (haveConnectedWifi == false && haveConnectedMobile == false) {
Log.d("Network State", "false");
AlertDialog.Builder alert = new AlertDialog.Builder(YourActivity.this);
alert.setTitle("No Data Connection!");
alert.setMessage("You have no data connection.");
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// TODO Auto-generated method stub
final Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
final ComponentName cn = new ComponentName("com.android.settings", "com.android.settings.wifi.WifiSettings");
intent.setComponent(cn);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity( intent);
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
return;
}
});
alert.show();
}else{
//do something else
}
return haveConnectedWifi || haveConnectedMobile;
}
发布于 2012-11-12 05:22:44
检查wifi状态:
ConnectivityManager conMgr;
NetworkInfo netInfo;
WifiManager wifiMgr;
conMgr=(ConnectivityManager)getSystemService(context.WIFI_Service);
netInfo=conMgr.getActiveNetworkInfo();
if(!(netInfo==null))
{
if(WifiMgr.isWifiEnabled())
{
//wifi enabled
}
else
{
//wifi disabled i.e not available
}
}
https://stackoverflow.com/questions/9873519
复制