Android 判断网络是否连接成功

在android开发中有时可能需要判断手机是否已经连接好网络,如wifi或者移动网,可以按如下步骤来实现:

(1)在AndroidManifest.xml或者程序中注册广播接收器

AndroidManifest.xml中代码如下:

<receiver
            android:name=".ConnectionChangeReceiver"
            android:label="NetworkConnection" >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                <action android:name="android.intent.action.USER_PRESENT" />
            </intent-filter>
        </receiver>

程序中代码如下:

IntentFilter broadcastFilter=new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
IntentFilter broadcastFilter1=new IntentFilter("android.intent.action.USER_PRESENT");
ConnectionChangeReceiver receiver=new ConnectionChangeReceiver();
registerReceiver(receiver,broadcastFilter);
registerReceiver(receiver,broadcastFilter1);
注意要加入权限:

      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

(2)在程序中写一个广播监听器

public class ConnectionChangeReceiver extends BroadcastReceiver {
		String packnameString = null;

		@Override
		public void onReceive(Context context, Intent intent) {
			packnameString = context.getPackageName();

			ConnectivityManager connectMgr = (ConnectivityManager) context
					.getSystemService(Context.CONNECTIVITY_SERVICE);
			NetworkInfo mobNetInfo = connectMgr
					.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
			NetworkInfo wifiNetInfo = connectMgr
					.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

			//if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
			if (wifiNetInfo.isConnected()) {
				// connect network
				Toast.makeText(context, "connect Wi-Fi", Toast.LENGTH_LONG).show();
				//networkFlag=true;
			} 
			if(mobNetInfo.isConnected()){
				// connect network
				Toast.makeText(context, "connect 3G", Toast.LENGTH_LONG).show();
				//networkFlag=true;
			}
			if(!networkFlag){
				// unconnect network
				Toast.makeText(context, "unconnect network", Toast.LENGTH_LONG).show();
				//networkFlag=false;				
			}
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值