热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android判断网络类型

一.判断网络是否连接通首先我们需要在AndroidManifest.xml文件中加入相应的权限。

一.判断网络是否连接通

首先我们需要在AndroidManifest.xml文件中加入相应的权限。

(ps:更多权限请查看我的博客http://www.cnblogs.com/zhaoyucong/p/6086687.html)

MainActivity.java

1 public class MainActivity extends Activity {
2
3 private Button but;//定义Button变量保存按钮控件
4
5 @Override
6 protected void onCreate(Bundle savedInstanceState) {
7 super.onCreate(savedInstanceState);
8 setContentView(R.layout.activity_main);
9 but = (Button) findViewById(R.id.but);//通过id找到按钮控件
10 but.setText("网络测试");//修改按钮内容
11 but.setOnClickListener(new OnClickListener() {
12
13 //匿名内部类
14 public void onClick(View v) {
15 //检查用户的网络情况
16 ConnectivityManager mConnectivityManager =
17           (ConnectivityManager) MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE);
18 //返回当前可用网络信息
19 NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
20
21 if(mNetworkInfo!=null){
22 Toast.makeText(MainActivity.this,"网络正常",Toast.LENGTH_SHORT).show();
23 }else{
24 Toast.makeText(MainActivity.this,"无网络",Toast.LENGTH_SHORT).show();
25 }
26 }
27 });
28 }
29 }

 二.判断网络类型

MainActivity.java

1 //返回当前可用网络信息
2 NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
3 //mNetworkInfo.getTypeName()返回对应的网络类型名称

mNetworkInfo.getTypeName()方法的名称有如下5种网络类型:
MOBILE、WIFI 互联网
WIMAX 微波存取全球互通
ETHERNET 以太网
BLUETOOTH 蓝牙

 三.判断网络是(2G/3G/4G)

 MainActivity.java

1 TelephonyManager telephonyManager = (TelephonyManager)MainActivity.this.getSystemService(Context.TELEPHONY_SERVICE);

telephonyManager.getNetworkType()方法返回的是个数值
以下是各种网络类型:
2G:

TelephonyManager.NETWORK_TYPE_GPRS
TelephonyManager.NETWORK_TYPE_EDGE
TelephonyManager.NETWORK_TYPE_CDMA
TelephonyManager.NETWORK_TYPE_1xRTT
TelephonyManager.NETWORK_TYPE_IDEN
telephonyManager.getNetworkType()//api<9 : replace by 14

3G
TelephonyManager.NETWORK_TYPE_UMTS
TelephonyManager.NETWORK_TYPE_EVDO_0
TelephonyManager.NETWORK_TYPE_EVDO_A
TelephonyManager.NETWORK_TYPE_HSDPA
TelephonyManager.NETWORK_TYPE_HSUPA
TelephonyManager.NETWORK_TYPE_HSPA
TelephonyManager.NETWORK_TYPE_EVDO_B//api<9 : replace by 14
TelephonyManager.NETWORK_TYPE_EHRPD//api<11 : replace by 12
TelephonyManager.NETWORK_TYPE_HSPAP//api<13 : replace by 15

4G
TelephonyManager.NETWORK_TYPE_LTE//api<11 : replace by 13

 

转:https://www.cnblogs.com/zhaoyucong/p/6085893.html



推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
author-avatar
长颈己
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有