注册广播监听网络连接和断开状态的变化,判断网络连接模式;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
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);
}
|
/发送广播附加信息
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;
}