安卓检查网络是否连接网络连接网络连接
『壹』 android 怎么判断当前网络连接是否可以连接到外网
Android里判断是否可以上网,常用的是如下方法:
/**
* 检测网络是否连接
*
* @return
*/
private boolean isNetworkAvailable() {
// 得到网络连接信息
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
// 去进行判断网络是否连接
if (manager.getActiveNetworkInfo() != null) {
return manager.getActiveNetworkInfo().isAvailable();
}
return false;
}
有时候我们连接上一个没有外网连接的WiFi或者有线就会出现这种极端的情况,目前Android SDK还不能识别这种情况,一般的解决办法就是ping一个外网。
/* @author suncat
* @category 判断是否有外网连接(普通方法不能判断外网的网络是否连接,比如连接上局域网)
* @return
*/
public static final boolean ping() {
String result = null;
try {
String ip = "www..com";// ping 的地址,可以换成任何一种可靠的外网
Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);// ping网址3次
// 读取ping的内容,可以不加
InputStream input = p.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(input));
StringBuffer stringBuffer = new StringBuffer();
String content = "";
while ((content = in.readLine()) != null) {
stringBuffer.append(content);
}
Log.d("------ping-----", "result content : " + stringBuffer.toString());
// ping的状态
int status = p.waitFor();
if (status == 0) {
result = "success";
return true;
} else {
result = "failed";
}
} catch (IOException e) {
result = "IOException";
} catch (InterruptedException e) {
result = "InterruptedException";
} finally {
Log.d("----result---", "result = " + result);
}
return false;
}
『贰』 android 判断是否有网络连接
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivity.getActiveNetworkInfo();
if(info != null && info.isAvailable()){
if (netInfo.getType() == ConnectivityManager.TYPE_WIFI) {
//WiFi网络
} else if (netInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
//移动网络
} else {
//网络错误
}
}else{
//网络错误
}
『叁』 安卓检查是否有网络连接和打开设置
从程序开发的角度来开发该功能如下代码及代码中的注释即可理解:
ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
// 检查网络连接,如果无网络可用,就不需要进行连网操作等
NetworkInfo info = manager.getActiveNetworkInfo();
if (info == null || !manager.getBackgroundDataSetting()) {
return "无网络链接";
}
return "网络畅通";
『肆』 Android检测手机是否有网络连接可用
给出一个检测检测手机是否有Internet访问数据连接的方法
public class CheckNewWorkConnection { static public boolean isNetworkConnected(Context context) { if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if (mNetworkInfo != null) { return mNetworkInfo.isAvailable();
}
} return false;
}
}
『伍』 如何检查Android网络连接状态
public class NetworkUtil {
/** 网络不可用 */
public static final int NONETWORK = 0;
/** 是wifi连接 */
public static final int WIFI = 1;
/** 不是wifi连接 */
public static final int NOWIFI = 2;
public static int getNetWorkType(Context context) {
if (!isNetWorkAvalible(context)) {
return NetworkUtil.NONETWORK;
}
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
// cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting())
return NetworkUtil.WIFI;
else
return NetworkUtil.NOWIFI;
}
public static boolean isNetWorkAvalible(Context context) {
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm == null) {
return false;
}
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null || !ni.isAvailable()) {
return false;
}
return true;
『陆』 Android判断是否有网络连接,如果没有开启移动网络
protected boolean CheckNetwork() {
// TODO Auto-generated method stub
boolean flag = false;
ConnectivityManager cwjManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (cwjManager.getActiveNetworkInfo() != null)
flag = cwjManager.getActiveNetworkInfo().isAvailable();
if (!flag) {
Builder b = new AlertDialog.Builder(this).setTitle("没有可用的网络").setMessage("请开启GPRS或WIFI网路连接");
b.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Intent mIntent = new Intent("/");
ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
mIntent.setComponent(comp);
mIntent.setAction("android.intent.action.VIEW");
startActivity(mIntent);
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub dialog.cancel();
}
}).create();
b.show();
}
return flag;
}
『柒』 手机如何检查网络连接或网络设置是否正常
1、首先我们在小米手机上左右滑动手机屏幕,找到“设置”的图标。
『捌』 怎样检查Android网络连接状态
可以调用SDK中的API判断是否有网络连接,以下为示例代码:
1、获取ConnectivityManager对象
Context context = activity.getApplicationContext();
// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
2、获取NetworkInfo对象
// 获取NetworkInfo对象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
3、判断当前网络状态是否为连接状态
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED){
return true;
}
4、在AndroidManifest.xml中添加访问当前网络状态权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
5.转跳到网络设置界面
// 跳转到系统的网络设置界面
Intent intent = null;
// 先判断当前系统版本
if(android.os.Build.VERSION.SDK_INT > 10){ // 3.0以上
intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
}else{
intent = new Intent();
intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");
}
context.startActivity(intent);
『玖』 Android中如何简单检测网络是否连接
权限:
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
代码:
java">/*
*判断网络连接是否已开
*true已打开false未打开
**/
publicstaticbooleanisConn(Contextcontext){
booleanbisConnFlag=false;
ConnectivityManagerconManager=(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfonetwork=conManager.getActiveNetworkInfo();
if(network!=null){
bisConnFlag=conManager.getActiveNetworkInfo().isAvailable();
}
returnbisConnFlag;
}
/*没有网络跳转到网络设置页面
*打开设置网络界面
**/
(finalContextcontext){
//提示对话框
AlertDialog.Builderbuilder=newAlertDialog.Builder(context);
builder.setTitle("网络设置提示").setMessage("网络连接不可用,是否进行设置?").setPositiveButton("设置",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
//TODOAuto-generatedmethodstub
Intentintent=null;
//判断手机系统的版本即API大于10就是3.0或以上版本
if(Build.VERSION.SDK_INT>10){
intent=newIntent(Settings.ACTION_WIRELESS_SETTINGS);
}else{
intent=newIntent();
ComponentNamecomponent=newComponentName("com.android.settings","com.android.settings.WirelessSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
}
context.startActivity(intent);
}
}).setNegativeButton("取消",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
//TODOAuto-generatedmethodstub
dialog.dismiss();
}
}).show();
}