Android WIFI检测与设置

简介:

WIFI是无线通信协议,可以允许手机直接连接到无线网络。在现在3G资费还比较贵的情况下,WIFI对于手机来说是很重要的,我们可以很方便的下载软件,音乐等资源。Android手机必须要有WIFI网卡才能支持WIFI。Android应用程序有时候需要对WIFI网卡进行操作,从而操作WIFI网络。

WIFI网卡有一些状态,由一系列的整形常量来表示。

常量名 常量值 网卡状态
WIFI_STATE_DISABLED 1 WIFI网卡不可用
WIFI_STATE_DISABLING 0 WIFI正在关闭
WIFI_STATE_ENABLED 3 WIFI网卡可用
WIFI_STATE_ENABLING 2 WIFI网卡正在打开
WIFI_STATE_UNKNOWN 4 未知网卡状态

 

在应用程序中操作WIFI网卡一定的权限。 
WIFI 的主要操作权限有四个: 
CHANGE_NETWORK_STATE :允许修改网络状态的权限。 
CHANGE_WIFI_STATE :允许修改 WIFI 状态的权限。 
ACCESS_NETWORK_STATE :允许访问网络状态的权限。 
ACCESS_WIFI_STATE :允许访问 WIFI 状态的权限。 
在AndroidManifest.xml文件中添加权限。

 

 
  1. XML/HTML代码  
  2.       
  3. <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission>          
  4. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>          
  5. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>          
  6. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>     

改变WIFI网卡的状态 
对WIFI网卡进行操作需要通过WifiManager对象来进行,获取该对象的方法如下: 
WifiManager wifiManger=(WifiManger)Context.getSystemService(Service.WIFI-SERVICE); 
打开WIFI网卡 
wifiManager.setWifiEnabled(true); 
关闭WIFI网卡 
wifiManager.setWifiEnabled(false); 
获取网卡当前的状态 
wifiManager.getWifiState();

需要说明的是由于Android模拟器不支持WIFI和蓝牙所以程序执行时返回的网卡状态都是WIFI_STATE_UNKNOWN:网卡未知的状态。此程序需要在真机上进行调试才会显示正确的运行结果。

打开WIFI网卡:

 

 
  1. Java代码  
  2.       
  3. WifiManager wifiManager =(WifiManager).getSystemService(Context.WIFI_SERVICE);            
  4. wifiManager.setWifiEnabled(true);            
  5.       

关闭WIFI网卡:

 

 
  1. Java代码  
  2.       
  3. WifiManager wifiManager =(WifiManager).getSystemService(Context.WIFI_SERVICE);              
  4. wifiManager.setWifiEnabled(false);      

 


     本文转自06peng 51CTO博客,原文链接:http://blog.51cto.com/06peng/962819,如需转载请自行联系原作者





相关文章
|
4月前
|
Android开发 开发者
Android设置View是否可用
在Android开发中,有时需要将布局设置为不可点击状态(失去焦点)。常见的解决方法是使用`setOnClickListener(null)`,但本文介绍一种更通用的方式:通过封装`setViewEnabled`方法实现。该方法可递归设置View及其子View的启用状态,支持传入目标View和布尔值(`true`为可用,`false`为禁用)。例如,调用`setViewEnabled(edittext, false)`即可禁用EditText。文章附有源码及示例动图,帮助开发者快速理解与应用。
|
4月前
|
Android开发 开发者
Android中Dialog位置+样式的设置
本文介绍了在Android开发中如何设置Dialog的位置和样式。通过自定义`MyDialog`类,可以灵活调整Dialog的显示位置,例如将其固定在屏幕底部,并设置宽度匹配父布局。同时,文章还展示了如何模仿Android原生Dialog样式,通过定义`MyDialogStyle`去除标题栏、设置背景透明度、添加阴影效果以及配置点击外部关闭等功能,从而实现更加美观和符合需求的Dialog效果。代码示例详细,便于开发者快速上手实现。
276 2
|
XML API Android开发
码农之重学安卓:利用androidx.preference 快速创建一、二级设置菜单(demo)
本文介绍了如何使用androidx.preference库快速创建具有一级和二级菜单的Android设置界面的步骤和示例代码。
386 1
码农之重学安卓:利用androidx.preference 快速创建一、二级设置菜单(demo)
|
11月前
|
设计模式 Java Android开发
安卓应用开发中的内存泄漏检测与修复
【9月更文挑战第30天】在安卓应用开发过程中,内存泄漏是一个常见而又棘手的问题。它不仅会导致应用运行缓慢,还可能引发应用崩溃,严重影响用户体验。本文将深入探讨如何检测和修复内存泄漏,以提升应用性能和稳定性。我们将通过一个具体的代码示例,展示如何使用Android Studio的Memory Profiler工具来定位内存泄漏,并介绍几种常见的内存泄漏场景及其解决方案。无论你是初学者还是有经验的开发者,这篇文章都将为你提供实用的技巧和方法,帮助你打造更优质的安卓应用。
|
12月前
|
Android开发
Android经典实战之Textview文字设置不同颜色、下划线、加粗、超链接等效果
本文介绍了 `SpannableString` 在 Android 开发中的强大功能,包括如何在单个字符串中应用多种样式,如颜色、字体大小、风格等,并提供了详细代码示例,展示如何设置文本颜色、添加点击事件等,助你实现丰富文本效果。
827 4
|
12月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
420 0
|
开发工具 Android开发
Android项目架构设计问题之外部客户方便地设置回调如何解决
Android项目架构设计问题之外部客户方便地设置回调如何解决
70 0
|
数据可视化 Java 数据挖掘
Android项目架构设计问题之设置RecyclerView的LayoutManager如何解决
Android项目架构设计问题之设置RecyclerView的LayoutManager如何解决
102 0
|
Android开发 iOS开发 C++
Flutter中设置Android的应用名称和图标(android,ios,web)
在前面的几期给大家介绍了flutter的安装以及一些简单的配置,还运行了helloword 那么接下来就带领大家了解如何设置应用名称以及图标
380 0
|
2月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
116 11