识字粗堪供赋役,不须辛苦慕公卿。这篇文章主要讲述android——判断网络状态相关的知识,希望能为你提供帮助。
【android——判断网络状态】平常我们玩qq的时候我们没联网 ,qq上面回显示“网络连接不给力,请检查网络连接”那么它是 通过什么方式判断网络是否连接的呢?
下面将写个案例展示如何检查网络连接状态的
由于我们这里只是测试下所以我们的项目只是简单的实现点击一个按钮判断设备网络是否连接如果 网络已连接则弹出一个消息框提示“网络通畅”反之则提示“您的网络真的连接 了吗”
1.新建一个android项目textNet(设备版本为4.4.2)
2.打开activity_main.xml 添加一个按钮
3.打开MainActivity.java 用匿名内部类为按钮添加一个点击事件
注:不建议使用匿名内部类 如果事件过多会很乱,做好到同一包下建一个类去实现方便修改
项目代码如下:
package com.example.internet; import android.app.Activity; import android.content.pm.PackageManager; import android.net.ConnectivityManager; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { private ConnectivityManager con; private boolean wifi; private boolean internet; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获得句柄 Button btn1 = (Button) this.findViewById(R.id.button1); //匿名内部类实现点击事件 btn1.setOnClickListener(new OnClickListener(){public void onClick(View v) { //建议不使用匿名内部类, //这里加try catch是为了防止设备没给权限二停止运行影响用户体验, try { //监视网络连接状态 con=(ConnectivityManager)getSystemService(Activity.CONNECTIVITY_SERVICE); //getNetworkinfo获取指定网络连接类型的信息 wifi=con.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting(); internet=con.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting(); } catch (Exception e) { e.printStackTrace(); }PackageManager pm = getPackageManager(); //判断是否有权限 boolean permission = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.ACCESS_NETWORK_STATE", "com.example.internet")); if (permission) {if(wifi | internet){ //土司弹框显示 Toast.makeText(MainActivity.this, "网络通畅", Toast.LENGTH_LONG) .show(); }else{ Toast.makeText(MainActivity.this, "亲,网络连了么?", Toast.LENGTH_LONG) .show(); } }else { //如果没权限则提示 Toast.makeText(MainActivity.this, "请打开相关网络状态权限,方便使用", Toast.LENGTH_LONG) .show(); } }}); }
注:权限清单方法
try { PackageInfo pack = pm.getPackageInfo("packageName",PackageManager.GET_PERMISSIONS); < /span> String[] permissionStrings = pack.requestedPermissions; showToast("权限清单---> " + permissionStrings.toString()); } catch (NameNotFoundException e) { e.printStackTrace(); }
这里转载一份权限表:
- http://www.cnblogs.com/classic/archive/2011/06/20/2085055.html
推荐阅读
- Android--ActionBar的基本用法
- 在Android开发中如何判读当前设备是否连接网络
- Mosquitto搭建Android推送服务番外篇一(各种报错解决)
- Android开发-之五大布局
- 菜鸟的Android学习之旅
- 二叉树(二叉树的类型有哪些(详细指南))
- Python如何使用round()函数(代码示例)
- 如何实现模式搜索Boyer Moore算法(详细解析和实现)
- CSS如何实现下拉菜单(代码实现详细解释)