注册广播监听网络连接和断开状态的变化,判断网络连接模式;
private ConnectivityManager mConnectivityManager;
private NetworkInfo netInfo;
/////////////监听网络状态变化的广播接收器
private BroadcastReceiver myNetReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
mConnectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
netInfo = mConnectivityManager.getActiveNetworkInfo();
if(netInfo != null && netInfo.isAvailable()) {
/////////////网络连接
String name = netInfo.getTypeName();
if(netInfo.getType()==ConnectivityManager.TYPE_WIFI){
/////WiFi网络
}else if(netInfo.getType()==ConnectivityManager.TYPE_ETHERNET){
/////有线网络
}else if(netInfo.getType()==ConnectivityManager.TYPE_MOBILE){
/////////3g网络
}
} else {
////////网络断开
}
}
}
};
/////////动态注册广播
IntentFilter mFilter = new IntentFilter();
mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(myNetReceiver, mFilter);
/////////解除广播
if(myNetReceiver!=null){
unregisterReceiver(myNetReceiver);
}
--------------------------------------------------
//添加网络权限 <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
--------------------------------------------------
/////////发送广播附加信息
Intent intent=new Intent();
intent.setAction(_ACTION);
intent.putExtra("msg", "hello");
mContext.sendBroadcast(intent);
////////接收广播时判断附加信息
public void onReceive(Context context, Intent intent) {
String msg=intent.getStringExtra("msg");
if(msg.equals("hello")){
............
}
}
-------------------------------------
////判断GPS是否打开
public boolean isGpsEnabled(Context context) {
LocationManager locationManager = ((LocationManager) context
.getSystemService(Context.LOCATION_SERVICE));
List<String> accessibleProviders = locationManager.getProviders(true);
return accessibleProviders != null && accessibleProviders.size() > 0;
}
本文介绍如何使用Android系统提供的API来监听网络状态的变化,包括网络连接的建立与断开,并区分不同类型的网络连接如Wi-Fi、有线网络及移动数据网络等。此外,还介绍了如何动态注册广播接收器以接收网络状态改变的广播,并提供了检查GPS是否开启的方法。
1977

被折叠的 条评论
为什么被折叠?



