android判断网络是否可用,安卓检测网络是否可用

android 如何判断网络是否能够上网

实现步骤:

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、网站空间、营销软件、网站建设、普宁网站维护、网站推广。

下面解决办法来自于android学习手册,android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载。排到第三个。

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

代码如下:

public class ClassTestDemoActivity extends Activity

{

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

if (isNetworkAvailable(ClassTestDemoActivity.this))

{

Toast.makeText(getApplicationContext(), "当前有可用网络!", Toast.LENGTH_LONG).show();

}

else

{

Toast.makeText(getApplicationContext(), "当前没有可用网络!", Toast.LENGTH_LONG).show();

}

}

/**

* 检查当前网络是否可用

*

* @param context

* @return

*/

public boolean isNetworkAvailable(Activity activity)

{

Context context = activity.getApplicationContext();

// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

if (connectivityManager == null)

{

return false;

}

else

{

// 获取NetworkInfo对象

NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

if (networkInfo != null networkInfo.length 0)

{

for (int i = 0; i networkInfo.length; i++)

{

System.out.println(i + "===状态===" + networkInfo[i].getState());

System.out.println(i + "===类型===" + networkInfo[i].getTypeName());

// 判断当前网络状态是否为连接状态

if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)

{

return true;

}

}

}

}

return false;

}

}

android 判断是否有网络

用户手机当前网络可用:WIFI、2G/3G网络,用户打开与不打开网络,和是否可以用是两码事。可以使用指的是:用户打开网络了并且可以连上互联网进行上网。

检测当前网络是否可用,代码如下:

/**

* 检测当的网络(WLAN、3G/2G)状态

* @param context Context

* @return true 表示网络可用

*/

public static boolean isNetworkAvailable(Context context) {

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;

}

}

}

return false;

}

/**

* 检测当的网络(WLAN、3G/2G)状态

* @param context Context

* @return true 表示网络可用

*/

public static boolean isNetworkAvailable(Context context) {

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;

}

}

}

return false;

}

在AndroidManifest.xml文件添加的权限:

uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/

uses-permission android:name="android.permission.INTERNET"/

uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/

uses-permission android:name="android.permission.INTERNET"/

Android中如何简单检测网络是否连接

权限:

uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/  

uses-permission android:name="android.permission.INTERNET"/ 

uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /

代码:

/*  

* 判断网络连接是否已开  

*true 已打开  false 未打开  

**/

public static boolean isConn(Context context){

boolean bisConnFlag=false;

ConnectivityManager conManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo network = conManager.getActiveNetworkInfo();

if(network!=null){

bisConnFlag=conManager.getActiveNetworkInfo().isAvailable();

}

return bisConnFlag;

/*没有网络跳转到网络设置页面

* 打开设置网络界面  

* */

public static void setNetworkMethod(final Context context){

//提示对话框  

AlertDialog.Builder builder=new AlertDialog.Builder(context);

builder.setTitle("网络设置提示").setMessage("网络连接不可用,是否进行设置?").setPositiveButton("设置", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub  

Intent intent=null;

//判断手机系统的版本  即API大于10 就是3.0或以上版本  

if(Build.VERSION.SDK_INT10){

intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);

}else{

intent = new Intent();

ComponentName component = new ComponentName("com.android.settings","com.android.settings.WirelessSettings");

intent.setComponent(component);

intent.setAction("android.intent.action.VIEW");

}

context.startActivity(intent);

}

}).setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub  

dialog.dismiss();

}

}).show();

}

Android之WIFI-网络可用性校验(NetworkMonitor)

流程框架

基础知识

源码

细节

1.WifiStateMachine在状态L2ConnectedState时,进行NetworkAgent初始化。

NetworkAgent初始化的过程建立与ConnectivityService通信

2.ConnectivityService的registerNetworkAgent创建NetworkAgentInfo

3.NetworkAgentInfo的初始化,创建NetworkMonitor,而NetworkMonitor则是监听网络的可用性

4.NetworkMonitor

adb控制

问题

参考学习


文章名称:android判断网络是否可用,安卓检测网络是否可用
本文地址:http://hbruida.cn/article/hopoci.html