开发者社区> 一叶飘舟> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

android 登录前检查网络状态

简介:
+关注继续查看

http://1002878825-qq-com.iteye.com/blog/1194801


Java代码  收藏代码
  1. package com.dx;  
  2.   
  3. import android.app.Activity;  
  4. import android.app.AlertDialog;  
  5. import android.content.Context;  
  6. import android.net.ConnectivityManager;  
  7. import android.net.NetworkInfo;  
  8. import android.net.NetworkInfo.State;  
  9. import android.os.Bundle;  
  10. import android.widget.TextView;  
  11.   
  12. public class Main extends Activity {  
  13.     /** Called when the activity is first created. */  
  14.     @Override  
  15.     public void onCreate(Bundle savedInstanceState) {  
  16.         super.onCreate(savedInstanceState);  
  17. //        setContentView(R.layout.main);  
  18.         TextView textView = new TextView(this);  
  19.         textView.setText("网络检测");  
  20.         setContentView(textView);  
  21.           
  22.         if(checkNetWorkInfo()){  
  23.             goToNetWork();  
  24.         };  
  25.     }  
  26.   
  27.     private boolean goToNetWork() {  
  28.         // TODO Auto-generated method stub  
  29.         ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);  
  30.         NetworkInfo info = connectivityManager.getActiveNetworkInfo();  
  31.         if(info == null || !info.isAvailable()){  
  32.             new AlertDialog.Builder(this).setMessage("没有可以使用的网络").setPositiveButton("Ok"null).show();      
  33.             return false;  
  34.         }  
  35.         else{  
  36.             new AlertDialog.Builder(this).setMessage("网络正常可以使用").setPositiveButton("Ok"null).show();      
  37.             return true;  
  38.         }  
  39.           
  40.           
  41.     }  
  42.   
  43.     private boolean checkNetWorkInfo() {  
  44.         // TODO Auto-generated method stub  
  45.         ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);  
  46.         State wifi  = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();  
  47.         if(wifi != null){  
  48.             new AlertDialog.Builder(this).setMessage(wifi.toString()).setPositiveButton("wifi"null).show();//显示wifi网络连接状态      
  49.             return true;  
  50.               
  51.         }else{  
  52.             State mobile  = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();  
  53.             if(mobile != null){  
  54.                 new AlertDialog.Builder(this).setMessage(mobile.toString()).setPositiveButton("3G"null).show();//显示3G网络连接状态      
  55.                 return true;  
  56.             }  
  57.         }  
  58.         return false;  
  59.           
  60.     }  
  61. }  



在手机应用与网络交互数据的时候,我们首先要判断有没有可用的网络,如果没有则跳到相应的网络设置页面,方法详见代码:

private boolean CheckNetwork() {
       boolean flag = false;
       ConnectivityManager cwjManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
       if (cwjManager.getActiveNetworkInfo() != null)
           flag = cwjManager.getActiveNetworkInfo().isAvailable();
       if (!flag) {
           Builder b = new AlertDialog.Builder(this).setTitle("没有可用的网络").setMessage("请开启GPRS或WIFI网络连接");
           b.setPositiveButton("确定", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int whichButton) {
                   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);
               }
           }).setNeutralButton("取消", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int whichButton) {
                   dialog.cancel();
               }
           }).create();
           b.show();
       } 



       return flag;
   }


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android——MVC、MVP、MVVM框架实现登录示例
MVC 描述 缺点 优点 MVP 效果图 描述 缺点 优点 代码解析 视图效果图 建立实体类 建立实体类接口 实现实体类接口 设置P层 建立交互接口 数据绑定 MVVM 效果图 描述 代码解析 导入dataBinding 实体类 建立viewmodel xml绑定数据 视图与数据绑定
0 0
react-native-wechat安卓点击登录没有回调问题
react-native-wechat安卓点击登录没有回调问题
0 0
Android友盟三方登录、微信新浪分享成功不走回调
微信新浪分享成功不走回调 检查微信回调WXEntryActivity是否是在包名路径下, 例如 包名是com.a.b(微信友盟开放平台),那么你这个activity应该放在com.a.b.wxapi文件夹下 包名为com.a.b ,这个activity放在com.a.b.view.wxapi文件夹下 导致微信回调失败(新浪同理)
0 0
【广告接入】Android 应用接入有米广告积分墙 ( 注册有米云账号 | 首次登录设置开发者信息 | 添加应用 )
【广告接入】Android 应用接入有米广告积分墙 ( 注册有米云账号 | 首次登录设置开发者信息 | 添加应用 )
0 0
android 单点登录功能
android 单点登录功能
0 0
Android笔记:集成原生微信授权获取用户信息登录
Android笔记:集成原生微信授权获取用户信息登录
0 0
快速实现抖音的分享&登录(android)
快速实现抖音分享与第三方登录 准备工作 1、注册抖音的key到抖音开放平台,点击这里查看步骤; 2、集成ShareSDK到Mob官网文档页面查看即可,点击这里查看集成; 业务代码 分享要求: 视频: 1、时长不符合要求,最大不能超过1小时,最小值抖音动态配置; 2、非mp4文件; 3、画幅比例不支...
887 0
Android Studio 通过一个登录功能介绍SQLite数据库的使用
原文:Android Studio 通过一个登录功能介绍SQLite数据库的使用 前言:         SQLite简介:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。
1067 0
Android Studio 通过一个登录功能介绍SQLite数据库的使用
前言:         SQLite简介:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
3573 0
Android微信授权登录内存泄漏问题
最近有个APP中使用了微信授权登录功能,项目中我们采用leakcanary来检测内存泄漏,发现微信登录有内存泄漏的问题。现将解决过程记录如下,不确定与微信SDK版本有没关系,欢迎讨论指正。
1856 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Android组件化实现
立即下载
蚂蚁聚宝Android秒级编译—— Freeline
立即下载
Android插件化:从入门到放弃
立即下载