博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android杂谈--网络状态判断
阅读量:6378 次
发布时间:2019-06-23

本文共 3583 字,大约阅读时间需要 11 分钟。

  许多联网应用都在开始运行的时候检查当前网络状态,如果没有开启则去开启它,记录一下以前写程序时的网络检查,发现人的记忆力真是有限,总是隔段时间久忘记,所以记录下来是最好的记忆。

  我们可以在一开始启动程序的时候检查网络连接状况,如果没有开启则弹出对话框设置网络

  首先需要加入权限

检查网络状态代码如下

public boolean CheckNetworkState()     {
boolean flag = false; ConnectivityManager manager = (ConnectivityManager)getSystemService( Context.CONNECTIVITY_SERVICE); if(manager.getActiveNetworkInfo() != null) {
flag = manager.getActiveNetworkInfo().isAvailable(); } if(!flag) {
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(android.R.drawable.ic_dialog_alert); builder.setTitle(R.string.netstate); builder.setMessage(R.string.setnetwork); builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override 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); } }); builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
dialog.cancel(); } }); builder.create(); builder.show(); } return flag; }

效果如下,用户可以点击确定来设置网络,比如启动wifi

-------------------------------------------------------------------------------------------------

如果希望网络连接时做一些事情的话,需要判断当前网络状态是否为true,为真则进行一些操作,否则设置网络。还可以用另外一种方式,其实差不多

//setnetwork     public void setNetwork()     {
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(android.R.drawable.ic_dialog_alert); builder.setTitle(R.string.netstate); builder.setMessage(R.string.setnetwork); builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override 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); } }); builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
dialog.cancel(); } }); builder.create(); builder.show(); } //NETWORK public boolean isNetworkAvailable() {
Context context = getApplicationContext(); ConnectivityManager connect = (ConnectivityManager)context.getSystemService( Context.CONNECTIVITY_SERVICE); if(connect==null) {
return false; }else//get all network info {
NetworkInfo[] info = connect.getAllNetworkInfo(); if(info!=null) {
for(int i=0;i

然后通过判断如果当前状态可用则执行相关代码,不可用则设置网络

if(isNetworkAvailable()) {
相关代码 }else {
setNetwork(); }

转载地址:http://ngvqa.baihongyu.com/

你可能感兴趣的文章
Paip.语义分析----情绪情感词汇表总结
查看>>
Linux下软件安装,卸载,管理
查看>>
View Programming Guide for iOS_读书笔记[正在更新……]
查看>>
排查VMWare虚拟机的性能问题
查看>>
yum安装Apache Web Server后各个文件存放位置
查看>>
一些基础密码算法的实现
查看>>
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
查看>>
Android于JNI调用列出的程序
查看>>
CSS3-border-radius 属性
查看>>
相似图片搜索的原理(二)(转)
查看>>
(转)Spring并发访问的线程安全性问题(高度总结)
查看>>
解决Activity启动黑屏和设置android:windowIsTranslucent不兼容activity切换动画的问题
查看>>
TextBox 英文文档
查看>>
linux系统调用函数---12
查看>>
C#开发SQLServer的Geometry和Geography存储
查看>>
GPUImage API文档之GPUImageInput协议
查看>>
EBS R12.2应用层关闭脚本的执行过程
查看>>
js:深闭包(范围:上)
查看>>
使用POI导入小数变成浮点数异常
查看>>
Logistic Regression的几个变种
查看>>