public class MainActivity extends Activity {
private IntentFilter intentfilter;// IntentFilter:意图过滤器。
private NetworkChangeReceier networkchangereceier;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intentfilter = new IntentFilter();
intentfilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");// 想监听什么广播在这修改值即可。
networkchangereceier = new NetworkChangeReceier();
registerReceiver(networkchangereceier, intentfilter);
}
class NetworkChangeReceier extends BroadcastReceiver {// BroadcastReceiver:广播接收机。
@Override
public void onReceive(Context context, Intent intent) {// 网络发生变化时就会调用这个方法。
ConnectivityManager connectivitymanager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);// ConnectivityManager:连接管理器。
NetworkInfo networkinfo = connectivitymanager
.getActiveNetworkInfo(); // NetworkInfo:网络状态。
if (networkinfo != null && networkinfo.isAvailable()) {// isAvailable:是可用的,若连接则返回true。
Toast.makeText(context, "网络已连接", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "网络已断开", Toast.LENGTH_SHORT).show();
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(networkchangereceier);
}
}
动态和静态都别忘了加权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
静态的用法如下:
<!-- 网络监听 -->
<receiver
android:name="com.example.yuanmu.lunbo.Util.NetworkBroadcastReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
写一个接收类:
package com.example.yuanmu.lunbo.Util;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.widget.Toast;
/**
* Created by Administrator on 2016/9/29 0029.
*/
public class NetworkBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivitymanager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);// ConnectivityManager:连接管理器。
NetworkInfo networkinfo = connectivitymanager
.getActiveNetworkInfo(); // NetworkInfo:网络状态。
if (networkinfo != null && networkinfo.isAvailable()) {// isAvailable:是可用的,若连接则返回true。
Toast.makeText(context, "网络已连接", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "网络已断开", Toast.LENGTH_SHORT).show();
}
}
}