权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
清单文件中注册服务:
<!-- 注册网络监听服务 -->
<receiver android:name="com.example.afinaljianzhimao.util.NetworkReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
服务类:
package com.example.afinaljianzhimao.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;
/**
* 临听手机的网络状态的后台服务
*
* @author Han
*
*/
public class NetworkReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager manager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobileInfo = manager .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiInfo = manager .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo activeInfo = manager.getActiveNetworkInfo();
if (activeInfo==null) {
Toast.makeText( context, "当前网络不可用,请检查网络", Toast.LENGTH_SHORT) .show();
}else {
if (activeInfo.getTypeName().equals("mobile")) {
Toast.makeText( context, "mobile:" + mobileInfo.isConnected() +
"\nactive:" + activeInfo.getTypeName(), Toast.LENGTH_SHORT) .show();
}
if (activeInfo.getTypeName().equals("wifi")) {
Toast.makeText( context, "wifi:" + wifiInfo.isConnected() +
"\nactive:" + activeInfo.getTypeName(), Toast.LENGTH_SHORT) .show();
}
}
}
}
参考: