易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
首页
/
操作系统
/
Linux
/
network: Android 网络判断
直接上代码,没有什么好说的!
package
mark.zhang;
import
java.util.List;
import
Android.content.Context;
import
android.location.LocationManager;
import
android.net.ConnectivityManager;
import
android.net.NetworkInfo;
import
android.telephony.TelephonyManager;
public
class
NetworkProber {
/**
* 网络是否可用
*
* @param activity
* @return
*/
public
static
boolean
isNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if
(connectivity ==
null
) {
}
else
{
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if
(info !=
null
) {
for
(
int
i =
0
; i < info.length; i++) {
if
(info[i].getState() == NetworkInfo.State.CONNECTED) {
return
true
;
}
}
}
}
return
false
;
}
/**
* Gps是否打开
*
* @param context
* @return
*/
public
static
boolean
isGpsEnabled(Context context) {
LocationManager locationManager = ((LocationManager) context
.getSystemService(Context.LOCATION_SERVICE));
List<String> accessibleProviders = locationManager.getProviders(
true
);
return
accessibleProviders !=
null
&& accessibleProviders.size() >
0
;
}
/**
* wifi是否打开
*/
public
static
boolean
isWifiEnabled(Context context) {
ConnectivityManager mgrConn = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager mgrTel = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
return
((mgrConn.getActiveNetworkInfo() !=
null
&& mgrConn
.getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel
.getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);
}
/**
* 判断当前网络是否是wifi网络
* if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) { //判断3G网
*
* @param context
* @return boolean
*/
public
static
boolean
isWifi(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
if
(activeNetInfo !=
null
&& activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return
true
;
}
return
false
;
}
/**
* 判断当前网络是否是3G网络
*
* @param context
* @return boolean
*/
public
static
boolean
is3G(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
if
(activeNetInfo !=
null
&& activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return
true
;
}
return
false
;
}
}
另外还有两个方法判断网络是否可用:
public
static
boolean
isNetworkAvailable_00(Context context) {
ConnectivityManager cm = ((ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE));
if
(cm !=
null
) {
NetworkInfo info = cm.getActiveNetworkInfo();
if
(info !=
null
&& info.isConnectedOrConnecting()) {
return
true
;
}
}
return
false
;
}
public
static
boolean
isNetworkAvailable_01(Context context) {
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo network = cm.getActiveNetworkInfo();
if
(network !=
null
) {
return
network.isAvailable();
}
return
false
;
}
更加严谨的写法:
public
static
boolean
checkNet(Context context) {
try
{
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if
(connectivity !=
null
) {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if
(info !=
null
&& info.isConnected()) {
if
(info.getState() == NetworkInfo.State.CONNECTED) {
return
true
;
}
}
}
}
catch
(Exception e) {
return
false
;
}
return
false
;
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图