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 ...
随机推荐
- MySQL 关联表批量修改(数据同步)
update table1 t1 ,table2 t2 set t1.field1 = t2.field2 where t1.id = t2.id
- mpp文件转换成jpg图片,可以用pdf文件做中转站
用project软件做了一个表,发现不能转换成图片,先把mpp文件转换成pdf文件,然后用PS打开pdf文件,存储为jpg格式就行了
- PHP写的异步高并发服务器,基于libevent
PHP写的异步高并发服务器,基于libevent 博客分类: PHP PHPFPSocketLinuxQQ 本文章于2013年11月修改. swoole已使用C重写作为PHP扩展来运行.项目地址:h ...
- Python pydoc.py
1. 查看帮助,我们可以在python命令行交互环境下用 help函数,比如: 查看 math 模块: >>> help('math')Help on built-in module ...
- RobotFrameWork(三)数据类型
1.1 数字变量 执行结果: 1.2 布尔变量和None/null 执行结果: 1.3 字符串.元组.list和字典 执行结果: 1.4 space和empty 执行结果:
- MySQL5.6 新特性之GTID
背景: MySQL5.6在5.5的基础上增加了一些改进,本文章先对其中一个一个比较大的改进"GTID"进行说明. 概念: GTID即全局事务ID(global transactio ...
- 【转】Android中的事件分发和处理
原文链接:http://www.apkbus.com/home.php?mod=space&uid=705730&do=blog&id=61207 上次跟大家分享了一下自定义V ...
- showModalDialog打开页面有缓存,不走action
当你设置的弹出网页固定时,ie很可能到临时文件区,下载上次产生的该页面,而没有重新加载, 对于动态加载的页面来说,这样往往产生误会,如没有及时更新数据,也就更不利于开发者测试.所以,你可以采用如 ...
- WebConfig配置
安全配置示例 https://msdn.microsoft.com/zh-cn/magazine/gg309184.aspx
- 无废话ExtJs 入门教程十九[API的使用]
无废话ExtJs 入门教程十九[API的使用] extjs技术交流,欢迎加群(201926085) 首先解释什么是 API 来自百度百科的官方解释:API(Application Programmin ...