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——判断网络状态的更多相关文章
- Android判断网络状态
package com.ch.services; import com.ch.utils.NetWorkUtils; import android.app.Service; import androi ...
- Android 监控网络状态
public static boolean isNetworkAvailable(Context context) { ConnectivityManager connectivity = (Conn ...
- Android获取网络状态
Android获取网络状态 学习自 https://developer.android.google.cn/reference/android/net/ConnectivityManager http ...
- Android判断网络是否打开,并打开设置网络界面
由于Android的SDK版本不同所以里面的API和设置方式也是有少量变化的,尤其是在Android 3.0 及后面的版本,UI和显示方式也发生了变化,现在就以打开网络设置为例,同大家分享一下: 1. ...
- Android杂谈--网络状态判断
许多联网应用都在开始运行的时候检查当前网络状态,如果没有开启则去开启它,记录一下以前写程序时的网络检查,发现人的记忆力真是有限,总是隔段时间久忘记,所以记录下来是最好的记忆. 我们可以在一开始启动程序 ...
- Android学习总结——判断网络状态
package com.example.xch.broadcasttest; import android.content.BroadcastReceiver; import android.cont ...
- Android开发(七)——判断网络状态
项目中难免会出现使用网络的情况,使用网络前得进行网络判断,看网上的网友一般有多种实现版本. 第一种: // 是否有网络连接 public static boolean isNetworkConnect ...
- Android 中判断网络状态
首先在AndroidManifest.xml添加权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_ ...
- android判断网络连接状态、联网类型、运营商
/** * 获取上网方式 * * @param mContext * @return */ public static String getNetType(Context mContext) { St ...
随机推荐
- PHP求余函数fmod()
定义和用法 fmod() 函数返回除法的浮点数余数. 语法 fmod(x,y) 参数 描述 x 必需.一个数. y 必需.一个数. 说明 返回被除数(x)除以除数(y)所得的浮点数余数.余数(r)的定 ...
- 什么叫哈希表(Hash Table)
散列表(也叫哈希表),是根据关键码值直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函数叫做散列函数,存放记录的数组叫做散列表. - 数据结构 ...
- Visual Studio 的代码片段工具
当安装完Visual Studio之后,会有附带一些原生的代码片段文件(*.snippet),对于vs2013参考目录如下: X:\Program Files (x86)\Microsoft Visu ...
- linux下nat配置
iptables要启用nat表,必须启动nat表的支持.默认情况下,linux下是没有开启nat表的支持的. #启动内核的路由功能 echo > /proc/sys/net/ipv4/ip_fo ...
- 调用webservice 总结
最近做一个项目,由于是在别人框架里开发app,导致了很多限制,其中一个就是不能直接引用webservice . 我们都知道,调用webserivice 最简单的方法就是在 "引用" ...
- ACM/ICPC 之 最小割转网络流(POJ3469)
重点:构图 //最小割转网络流 //邻接表+Dinic //Time:5797Ms Memory:6192K #include<iostream> #include<cstring& ...
- 倒计时simple 天时分秒
new Date()new Date(yyyy,mth,dd,hh,mm,ss); //月从0计数 .getTime()返回的是一个long型的毫秒数 毫秒转成 秒 分 时 天 <div id= ...
- 腾讯QQ形象18年变迁史,最早的QQ企鹅形象居然长这样!
1999年,腾讯创建之初,这是当时QQ的形象,现在看起来很滑稽,又高又瘦.当时公司并没有专职的设计师,所以这个形象就凑合着用了. 后来,腾讯也觉着上一个形象做的不是特别好,于是在2000年的时候,公司 ...
- mysql 分表
1.分表,即把一个很大的表达数据分到几个表中,这样每个表数据都不多. 优点:提高并发量,减小锁的粒度 缺点:代码维护成本高,相关sql都需要改动 2.分区,所有的数据还在一个表中,但物理存储数据根据一 ...
- Ubuntu16.04安装nginx
//ubuntu //安装nginxcurl -LJO http://nginx.org/download/nginx-1.10.1.tar.gz tar zxvf nginx-1.10.1.tar. ...