Android 控制WIFI相关操作
作者:徐福安发表于
2011-5-29 22:36:25评论(0)阅读(1156)
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设备成功连接,然后运行本节的例子,会看到如图所示的输出信息。
本例的完整实现代码如下:
Java代码
-
packageeoe.demo.wifi;
-
-
importjava.net.Inet4Address;
-
importjava.util.List;
-
importandroid.app.Activity;
-
importandroid.content.Context;
-
importandroid.net.wifi.WifiConfiguration;
-
importandroid.net.wifi.WifiInfo;
-
importandroid.net.wifi.WifiManager;
-
importandroid.os.Bundle;
-
importandroid.widget.CheckBox;
-
importandroid.widget.CompoundButton;
-
importandroid.widget.TextView;
-
importandroid.widget.CompoundButton.OnCheckedChangeListener;
-
-
publicclassMainextendsActivityimplementsOnCheckedChangeListener{
-
privateWifiManagerwifiManager;
-
privateWifiInfowifiInfo;
-
privateCheckBoxchkOpenCloseWifiBox;
-
privateList<WifiConfiguration>wifiConfigurations;
-
@Override
-
publicvoidonCreate(BundlesavedInstanceState){
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.main);
-
-
wifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE);
-
-
wifiInfo=wifiManager.getConnectionInfo();
-
chkOpenCloseWifiBox=(CheckBox)findViewById(R.id.chkOpenCloseWifi);
-
TextViewtvWifiConfigurations=(TextView)findViewById(R.id.tvWifiConfigurations);
-
TextViewtvWifiInfo=(TextView)findViewById(R.id.tvWifiInfo);chkOpenCloseWifiBox.setOnCheckedChangeListener(this);
-
-
if(wifiManager.isWifiEnabled()){
-
chkOpenCloseWifiBox.setText("Wifi已开启");
-
chkOpenCloseWifiBox.setChecked(true);
-
}else{
-
chkOpenCloseWifiBox.setText("Wifi已关闭");
-
chkOpenCloseWifiBox.setChecked(false);
-
}
-
-
StringBuffersb=newStringBuffer();
-
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(WifiConfigurationwifiConfiguration:wifiConfigurations){
-
tvWifiConfigurations.setText(tvWifiConfigurations.getText()+wifiConfiguration.SSID+"\n");
-
}
-
}
-
-
privateStringipIntToString(intip){
-
try{
-
byte[]bytes=newbyte[4];
-
bytes[0]=(byte)(0xff&ip);
-
bytes[1]=(byte)((0xff00&ip)>>8);
-
bytes[2]=(byte)((0xff0000&ip)>>16);
-
bytes[3]=(byte)((0xff000000&ip)>>24);
-
returnInet4Address.getByAddress(bytes).getHostAddress();
-
}catch(Exceptione){
-
return"";
-
}
-
}
-
-
@Override
-
publicvoidonCheckedChanged(CompoundButtonbuttonView,booleanisChecked){
-
-
if(isChecked){
-
wifiManager.setWifiEnabled(true);
-
chkOpenCloseWifiBox.setText("Wifi已开启");
-
}
-
-
else{
-
wifiManager.setWifiEnabled(false);
-
chkOpenCloseWifiBox.setText("Wifi已关闭");
-
}
-
}
-
-
}
在AndroidManifest.xml文件中要使用如下的代码打开相应的权限。
Java代码:
XML/HTML代码
-
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE">
-
</uses-permission>
-
<uses-permissionandroid:name="android.permission.WAKE_LOCK">
-
</uses-permission>
-
<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE">
-
</uses-permission>
分享到:
相关推荐
Android 控制WIFI相关操作 WIFI的全称是Wireless Fidelity,又称802.11b标准,是一种高速的无线通信协议,传输速度可以达到11Mb/s。 实际上,对WIFI并不需要过多的控制(当成功连接WIFI后,就可以直接通过IP在WIFI...
1. 各家 WiFi BT 芯片驱动各不相同,因此各有各的定频测试软件 2. 定频测试一般是 APK+so/bin+特定驱动的形式,APK 用于操作界面,so/
本文介绍了基于 Android 手机操作和控制的 Wifi 小车程序设计,希望对你的学习有所帮助。
STM32F103VET6_ ESP8266-12F 手机或笔记本电脑WIFI控制LED的实现 Android调试端的测试代码,Android TCP 测试小软件。具体操作可以参考: http://blog.csdn.net/tcjy1000/article/details/70155897
基于Android的Socket(TCP/IP)在 LED灯光控制系统中的应用pdf,采用Socket的通信方法,根据TCP/IP通信协议进行数据传输,基于Android操作系统平台,通过Zigbee无线通信与自组网技术,设计了以Android操作系统为平台...
控制wifi连接,打开、关闭wifi,打开热点,删除记录,等操作
Delphi XE FMX加构下对移动平台的wifi控制与操作全部来源于它,相当给力与重要!
通过android手机运行app来控制pc的鼠标 无线、远程鼠标 模拟笔记本触摸屏的各种鼠标操作
Android 日记系统源码(数据库的基本操作) Android 极简强大VR本地播放器 Android 用handler机制联网获取图片 Android 百宝箱 Android 简单的翻译软件 Android 精美仿开眼视频跨平台App Android 自定义数字密码输入...
近程模式:⽤⼿机就能直接对格⼒智能空调进⾏控制,适⽤于在家⾥近距离操控,和普通 遥控器相⽐⼿机近程WiFi控制可轻松实现穿墙操作; 远程模式:需要家庭⽆线路由器与格⼒智能空调绑定到⼀起,即可在智能⼿机上⽹的...
sony索尼相机 wifi控制程序,控制拍照,调教,回传图像。亲测可用。该DEMO是安卓平台主要下的,其核心是个jar包,该包主要包含了和相机进行通信的相关代码。很清晰。如需要也可以用eclipse移植到win下。
云台控制系统是本人休息时间做的一款Android APP 具体功能为用户操作UI界面,进行上下左右操作,功能设置操作,将消息通过wifi传输给硬件,硬件通过串口或者USB接口将对应的消息传输给计算机,或者控制执行系统的...
这是一个android程序,在手机上安装了pc端之后,你就可以通过wifi控制你的电脑了。 无线键盘:你可以使用无线键盘当做无线游戏手柄使用 无线鼠标:你可以使用无线鼠标可视化控制电脑,操作不受有线拘束功能一应俱全, ...
Android Wifi 蓝牙 demo。 包含如下demo: 蓝牙4.0 扫描、连接等操作demo ...Android通过蓝牙与设备连接,解决数据报文分段(通过时间控制)。动态修改动画 samsung android 蓝牙4.0开发工具包和BLE例子 等
这是一个android程序,在手机上安装了pc端之后,你就可以通过wifi控制你的电脑了。 无线键盘:你可以使用无线键盘当做无线游戏手柄使用 无线鼠标:你可以使用无线鼠标可视化控制电脑,操作不受有线拘束功能一应俱全, ...
电脑端软件(ADRHOST.exe)支持快捷键操作,可实现全键盘控制。 目前仅支持网络连接的方式(WIFI、3G/4G),暂不支持USB。 仅支持Android5.0及以上版本的系统,无需ROOT权限。 特别说明:由于android-5.1.0_r5之前的...
第1章 Android操作系统概述 1 1.1 Android历史介绍 1 1.2 Android架构 1 1.3 Android平台介绍 2 1.4 现有智能手机操作系统比较 4 第2章 Android开发环境搭建 5 2.1 Eclipse和ADT插件 5 2.1.1 Eclipse安装 5 ...
将MQTT协议和连接阿里云平台的操作通过Android studio写入APP中,并简单设计UI。实现手机APP远程控制单片机LED灯亮灭的功能。专栏为手把手完整实现STM32+ESP8266+MQTT+阿里云+APP物联网WIFI应用,以上五个部分全部...
车俩与手机之间通过socket建立wifi通信,通过控制界面下发遥控命令,如油门,制动等,车俩接收到遥控指令,执行控制操作,并返回车俩的运行状态。