Android 控制wifi 相关操作实例

Android 控制WIFI相关操作

WIFI的全称是Wireless Fidelity,又称802.11b标准,是一种高速的无线通信协议,传输速度可以达到11Mb/s。

实际上,对WIFI并不需要过多的控制(当成功连接WIFI后,就可以直接通过IP在WIFI设备之间进行通信了),一般只需要控制打开或关闭WIFI以及获得一些与WIFI相关的信息(例如,MAC地址、IP等)。

如果读者的Android手机有WIFI功能,可以在手机上测试本节的例子。要注意的是,WIFI功能不能在Android模拟器上测试,就算在有WIFI功能的真机上也需要先通过WIFI和计算机或其他WIFI设备连接后,才能获得与WIFI相关的信息。

本节的例子可以关闭和开始WIFI,并获得各种与WIFI相关的信息。首先确认手机通过WIFI与其他WIFI设备成功连接,然后运行

本节的例子,会看到如图所示的输出信息。

本例的完整实现代码如下:

package eoe.demo.wifi; import java.net.Inet4Address; import java.util.List; import android.app.Activity; import android.content.Context; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Bundle; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.TextView; import android.widget.CompoundButton.OnCheckedChangeListener; public class Main extends Activity implements OnCheckedChangeListener { private WifiManager wifiManager; private WifiInfo wifiInfo; private CheckBox chkOpenCloseWifiBox; private List<WifiConfiguration> wifiConfigurations; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 获得WifiManager对象 wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); // 获得连接信息对象 wifiInfo = wifiManager.getConnectionInfo(); chkOpenCloseWifiBox = (CheckBox) findViewById(R.id.chkOpenCloseWifi); TextView tvWifiConfigurations = (TextView) findViewById(R.id.tvWifiConfigurations); TextView tvWifiInfo = (TextView) findViewById(R.id.tvWifiInfo); chkOpenCloseWifiBox.setOnCheckedChangeListener(this); // 根据当前WIFI的状态(是否被打开)设置复选框的选中状态 if (wifiManager.isWifiEnabled()) { chkOpenCloseWifiBox.setText("Wifi已开启"); chkOpenCloseWifiBox.setChecked(true); } else { chkOpenCloseWifiBox.setText("Wifi已关闭"); chkOpenCloseWifiBox.setChecked(false); } // 获得WIFI信息 StringBuffer sb = new StringBuffer(); sb.append("Wifi信息\n"); sb.append("MAC地址:" + wifiInfo.getMacAddress() + "\n"); sb.append("接入点的BSSID:" + wifiInfo.getBSSID() + "\n"); sb.append("IP地址(int):" + wifiInfo.getIpAddress() + "\n"); sb.append("IP地址(Hex):" + Integer.toHexString(wifiInfo.getIpAddress()) + "\n"); sb.append("IP地址:" + ipIntToString(wifiInfo.getIpAddress()) + "\n"); sb.append("网络ID:" + wifiInfo.getNetworkId() + "\n"); tvWifiInfo.setText(sb.toString()); // 得到配置好的网络 wifiConfigurations = wifiManager.getConfiguredNetworks(); tvWifiConfigurations.setText("已连接的无线网络\n"); for (WifiConfiguration wifiConfiguration : wifiConfigurations) { tvWifiConfigurations.setText(tvWifiConfigurations.getText() + wifiConfiguration.SSID + "\n"); } } // 将int类型的IP转换成字符串形式的IP private String ipIntToString(int ip) { try { byte[] bytes = new byte[4]; bytes[0] = (byte) (0xff & ip); bytes[1] = (byte) ((0xff00 & ip) >> 8); bytes[2] = (byte) ((0xff0000 & ip) >> 16); bytes[3] = (byte) ((0xff000000 & ip) >> 24); return Inet4Address.getByAddress(bytes).getHostAddress(); } catch (Exception e) { return ""; } } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // 当选中复选框时打开WIFI if (isChecked) { wifiManager.setWifiEnabled(true); chkOpenCloseWifiBox.setText("Wifi已开启"); } // 当取消复选框选中状态时关闭WIFI else { wifiManager.setWifiEnabled(false); chkOpenCloseWifiBox.setText("Wifi已关闭"); } } }

在AndroidManifest.xml文件中要使用如下的代码打开相应的权限。

XML/HTML代码 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"> </uses-permission> <uses-permission android:name="android.permission.WAKE_LOCK"> </uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"> </uses-permission>

以上就是对Android Wifi 简单实例的源码,在做Android开发Wifi 模块的朋友可以参考下。

时间: 2024-12-01 13:53:06

Android 控制wifi 相关操作实例的相关文章

Android 控制wifi 相关操作实例_Android

Android 控制WIFI相关操作 WIFI的全称是Wireless Fidelity,又称802.11b标准,是一种高速的无线通信协议,传输速度可以达到11Mb/s. 实际上,对WIFI并不需要过多的控制(当成功连接WIFI后,就可以直接通过IP在WIFI设备之间进行通信了),一般只需要控制打开或关闭WIFI以及获得一些与WIFI相关的信息(例如,MAC地址.IP等). 如果读者的Android手机有WIFI功能,可以在手机上测试本节的例子.要注意的是,WIFI功能不能在Android模拟器

Android Wifi的forget()操作实例详解

Android  Wifi的forget()操作实例详解 我们在处理某个Wifi连接时,有时会需要忘掉当前连接的密码信息.执行这项操作,我们需要调用WifiManager::forget()函数: /** * Delete the network in the supplicant config. * * This function is used instead of a sequence of removeNetwork() * and saveConfiguration(). * * @p

Android连接指定Wifi的方法实例代码

本篇文章主要记录一下Android中打开Wifi.获取Wifi接入点信息及连接指接入点的方法. 自己写的demo主要用于测试接口的基本功能,因此界面及底层逻辑比较粗糙. demo的整体界面如下所示: 上图中的OPEN按键负责开启Wifi: GET按键负责获取扫描到的接入点信息. 当获取到接入点信息后,我选取了其中的名称及信号强度,以列表的形式显示在主界面下方,如下图: 当点击列表中的Item时,就会去连接对应的接入点. 自己的逻辑比较简单,测试时的代码,假定连接的是不许要密码或密码已知的接入点.

Android开发之时间日期操作实例_Android

相信对于手机的时间日期设置大家一定都不陌生吧,今天举一个关于时间日期设置的示例,其中有些许不完善之处,例如如何使设置的时间日期和手机系统同步等.感兴趣的读者可以根据自身经验加以完善. 现来看看具体示例,希望对大家有所帮助. 首先是时间设置: .java文件(MainActivity.java)代码如下: package com.example.activity_time_date; import java.util.Calendar; import android.app.Activity; i

php文件操作相关类实例_php技巧

本文实例讲述了php文件操作相关类.分享给大家供大家参考.具体如下: <?php class file_dir { function check_exist($filename) //检查目录或文件是否存在 { if(file_exists($filename)) { return true; } else return false; } function create_dir($dirname,$mode=0777) // 一次只能创建一级目录 { if(is_null($dirname) |

CI框架中redis缓存相关操作文件示例代码_php实例

本文实例讲述了CI框架中redis缓存相关操作文件.分享给大家供大家参考,具体如下: redis缓存类文件位置: 'ci\system\libraries\Cache\drivers\Cache_redis.php' <?php /** * CodeIgniter * * An open source application development framework for PHP 5.2.4 or newer * * NOTICE OF LICENSE * * Licensed under

android app进行代码混淆实例详解

  android app进行代码混淆实例详解         接到一个新的任务,对现有项目进行代码混淆.之前对混淆有过一些了解,但是不够详细和完整,知道有些东西混淆起来还是比较棘手的.不过幸好目前的项目不是太复杂(针对混淆这块来说),提前完成--现总结之. 第一部分 介绍下操作流程(eclipse): 1.打开混淆器:找到项目根目录下的project.properties文件,将"#proguard.config=${sdk.dir}/tools/proguard/proguard-andro

【Android】Android中WIFI开发总结(一)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://smallwoniu.blog.51cto.com/3911954/1334951        WIFI就是一种无线联网技术,常见的是使用无线路由器.那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网.如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为"热点".      在Android中对Wifi操作,android本身提供了

【Android】Android之WiFi开发应用示例

在Android中对Wifi操作,android本身提供了一些有用的包,在android.net.wifi包下面.主要包括以下几个类和接口: 1.ScanResult 主要用来描述已经检测出的接入点,包括接入点的地址,接入点的名称,身份认证,频率,信号强度等信息. 2.WifiConfiguration Wifi网络的配置,包括安全设置等. 3.WifiInfo wifi无线连接的描述,包括接入点,网络连接状态,隐藏的接入点,IP地址,连接速度,MAC地址,网络ID,信号强度等信息.这里简单介绍