一、
判断wifi网络是否链接
public static boolean isWiFiActive(Context inContext) {
WifiManager mWifiManager = (WifiManager) inContext
.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
int ipAddress = wifiInfo == null ? 0 : wifiInfo.getIpAddress();
if (mWifiManager.isWifiEnabled() && ipAddress != 0) {
System.out.println("**** WIFI is on");
return true;
} else {
System.out.println("**** WIFI is off");
return false;
}
}
判断3G网络是否链接
public static boolean isNetworkAvailable( Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
System.out.println("**** newwork is off");
return false;
} else {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if(info == null){
System.out.println("**** newwork is off");
return false;
}else{
if(info.isAvailable()){
System.out.println("**** newwork is on");
return true;
}
}
}
System.out.println("**** newwork is off");
return false;
}
相关权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
转载自:http://www.cnblogs.com/mmll/articles/2043172.html
二、
在android中判断是否有网络连接
注意:网络类型是3g 或者 wifi
在3g或者wifi类型的网络下做一些更新操作
public boolean isConnecting()
{
ConnectivityManager mConnectivity = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager mTelephony = (TelephonyManager)this.getSystemService(TELEPHONY_SERVICE);
NetworkInfo info = mConnectivity.getActiveNetworkInfo();
if(info == null || !mConnectivity.getBackgroundDataSetting())
{
return false;
}
int netType = info.getType();
int netSubtype = info.getSubtype();
if(netType == ConnectivityManager.TYPE_WIFI)
{
return info.isConnected();
}
else if(netType == ConnectivityManager.TYPE_MOBILE && netSubtype ==TelephonyManager.NETWORK_TYPE_UMTS && !mTelephony.isNetworkRoaming())
{
return info.isConnected();
}
else
{
return false;
}
}
转载自:
http://www.eoeandroid.com/thread-81511-1-1.html
三、
在开发过程中,尤其是在开发网络应用的时候,时常要判断手机的联网状态,及时的给用户友善的提示。我们登录market,在网络断开的时候会及时的弹出警告窗口,避免用户盲目的等待。
这样的判断要贯穿在整个应用当中,在用户切换Activity,或者是后台service运行的时候都可能要用到。所以我们可以将判断的逻辑封装成一个方法,让其他Activity/service公用。
public static boolean isNetworkAvailable( Activity mActivity ) {
Context context = mActivity.getApplicationContext();
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
/**
* 检测网络是否存在
*/
public static void HttpTest(final Activity mActivity)
{
if( !isNetworkAvailable( mActivity) ){
AlertDialog.Builder builders = new AlertDialog.Builder(mActivity);
builders.setTitle("抱歉,暂时无法处理您的请求");
LayoutInflater _inflater = LayoutInflater.from(mActivity);
View convertView = _inflater.inflate(R.layout.error,null);
builders.setView(convertView);
builders.setPositiveButton("确定", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which)
{
mActivity.finish();
}
});
builders.show();
}
}
这样我们在Activity的onCreate的时候或者onResume 的时候就只需要 调用这个方法。将当前的Activity.this当做参数传进去即可。
需要在AndroidManifest.xml中
增加权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
转载于:http://blog.csdn.net/vinuslong/article/details/6542552
四、
public static boolean isNetWorkAvailable(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
return info != null && info.isConnected();
}
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>