一. AndroidManifest.xml 文件
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
二. BroadcastReceiver 类
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
/** * 网络广播监听
* Created by Administrator on 2016/11/2.
*/
public class NetStateReceiver extends BroadcastReceiver {
private NetworkInfoInterface networkInfoInterface;
public interface NetworkInfoInterface {
void checkNetState(boolean netState);
}
public void getNetworkInfo(NetworkInfoInterface networkInfoInterface){
this.networkInfoInterface = networkInfoInterface;
}
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkinfo = manager.getActiveNetworkInfo();
if (networkinfo == null || !networkinfo.isAvailable()) {
networkInfoInterface.checkNetState(false);
}else {
networkInfoInterface.checkNetState(true);
}
}
}
三. Activity 类中使用
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import com.nativeTools.NetStateReceiver;
public class InitActivity extends AppCompatActivity implements NetStateReceiver.NetworkInfoInterface{
private NetStateReceiver netStateReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_init);
registerMessageReceiver();
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(netStateReceiver);
}
/** * 动态注册广播 */
public void registerMessageReceiver() {
netStateReceiver = new NetStateReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(netStateReceiver, intentFilter);
netStateReceiver.getNetworkInfo(this);
}
@Override
public void checkNetState(boolean netState) {
if (netState) {
Log.d("提示", "网络可用");
}else {
Log.d("提示", "网络不可用,请检查网络状况!!");
}
}
}
三. Fragment 类中使用
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.nativeTools.NetStateReceiver;
import com.vipcio.R;
public class HomeFragment extends Fragment implements NetStateReceiver.NetworkInfoInterface {
private AppCompatActivity activity;
private View root;
private NetStateReceiver netStateReceiver;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
activity = (AppCompatActivity) getActivity();
root = inflater.inflate(R.layout.fragment_home, container, false);
registerMessageReceiver();
return root;
}
/** * 动态注册广播 */
public void registerMessageReceiver() {
netStateReceiver = new NetStateReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
activity.registerReceiver(netStateReceiver, intentFilter);
netStateReceiver.getNetworkInfo(this);
}
@Override
public void onDestroy() {
super.onDestroy();
activity.unregisterReceiver(netStateReceiver);
}
@Override
public void checkNetState(boolean netState) {
if (netState) {
Log.d("提示", "网络可用");
}else {
Log.d("提示", "网络不可用,请检查网络状况!!");
}
}
}