Android工具类-关于网络、状态的工具类
2024-09-19 23:00:17
下方是一个很好的监测网络、状态的工具类
- public class NetworkUtils {
- /**
- * 网络是否可用
- *
- * @param activity
- * @return
- */
- public static boolean isNetworkAvailable(Context context) {
- ConnectivityManager connectivity = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- if (connectivity == null) {
- } else {
- NetworkInfo[] info = connectivity.getAllNetworkInfo();
- if (info != null) {
- for (int i = 0; i < info.length; i++) {
- if (info[i].getState() == NetworkInfo.State.CONNECTED) {
- return true;
- }
- }
- }
- }
- return false;
- }
- /**
- * Gps是否打开
- *
- * @param context
- * @return
- */
- public static boolean isGpsEnabled(Context context) {
- LocationManager locationManager = ((LocationManager) context
- .getSystemService(Context.LOCATION_SERVICE));
- List<String> accessibleProviders = locationManager.getProviders(true);
- return accessibleProviders != null && accessibleProviders.size() > 0;
- }
- /**
- * wifi是否打开
- */
- public static boolean isWifiEnabled(Context context) {
- ConnectivityManager mgrConn = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- TelephonyManager mgrTel = (TelephonyManager) context
- .getSystemService(Context.TELEPHONY_SERVICE);
- return ((mgrConn.getActiveNetworkInfo() != null && mgrConn
- .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel
- .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);
- }
- /**
- * 判断当前网络是否是wifi网络
- * if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) {
- *
- * @param context
- * @return boolean
- */
- public static boolean isWifi(Context context) {
- ConnectivityManager connectivityManager = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
- if (activeNetInfo != null
- && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {
- return true;
- }
- return false;
- }
- /**
- * 判断当前网络是否3G网络
- *
- * @param context
- * @return boolean
- */
- public static boolean is3G(Context context) {
- ConnectivityManager connectivityManager = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
- if (activeNetInfo != null
- && activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
- return true;
- }
- return false;
- }
- }
以上方法均通过测试,tv_result为自设定的TextView。
- tv_result.append("网络是否可用:"+NetworkUtils.isNetworkAvailable(MainActivity.this)+"\n");
- tv_result.append("GPS开关是否打开:"+NetworkUtils.isGpsEnabled(MainActivity.this)+"\n");
- tv_result.append("是否为3G网络:"+NetworkUtils.is3G(MainActivity.this)+"\n");
- tv_result.append("WIFI是否打开:"+NetworkUtils.isWifiEnabled(MainActivity.this)+"\n");
- tv_result.append("是否为WIFI网络:"+NetworkUtils.isWifi(MainActivity.this)+"\n");
最新文章
- Java并发基础框架AbstractQueuedSynchronizer初探(ReentrantLock的实现分析)
- 操作系统开发系列—12.b.从Loader跳入保护模式
- Python自动化之sqlalchemy复合外键
- 简单介绍智能DNS解析+双线路接入
- java找jar包、搜索class类 搜索maven
- RMAN备份与恢复之不完全恢复
- self,parent,this区别
- WPF从入门到放弃系列第二章 XAML
- Visual Studio 2013如何破解(密钥激活)
- tensorflow mnist read_data_sets fails
- 03 SeekBar 音频播放拖拽进度条
- [Windows Hyper-V-Server]Enable or disable firewall rules under powershell / powershell下启用禁用防火墙规则
- WPF 可触摸移动的ScrollViewer控件
- React-Native android 开发者记录
- vue组件推荐
- oracle 索引的几种方式
- ADO.NET分享
- .net视频教程代码之《提交注册内容》
- 用.NET CORE做项目,VS里编译碰到‘。。。。包降级。。。。’错误
- eclipse安装Freemaker IDE插件
热门文章
- 微软BI 之SSRS 系列 - 解决Pie Chart 中控制标签外部显示与标签重叠的问题
- Postgresql中的数据类型大全
- Five Steps to Avoiding Java Heap Space Errors
- ORACLE 定时运行存储过程经常使用时间间隔
- Mysql查询数据库表结构以及字段类型并展示
- Markdown中实时显示数学公式的方法
- Java DES 加解密(";DES/CBC/PKCS5Padding";)
- java base64编码、解码的三种方式
- VTK中获取STL模型点的坐标以及对其进行变换
- 5、redis之使用spring集成commons-pool