`
xitongyunwei
  • 浏览: 926818 次
文章分类
社区版块
存档分类
最新评论

Android 控制WIFI相关操作

 
阅读更多

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代码
  1. packageeoe.demo.wifi;
  2. importjava.net.Inet4Address;
  3. importjava.util.List;
  4. importandroid.app.Activity;
  5. importandroid.content.Context;
  6. importandroid.net.wifi.WifiConfiguration;
  7. importandroid.net.wifi.WifiInfo;
  8. importandroid.net.wifi.WifiManager;
  9. importandroid.os.Bundle;
  10. importandroid.widget.CheckBox;
  11. importandroid.widget.CompoundButton;
  12. importandroid.widget.TextView;
  13. importandroid.widget.CompoundButton.OnCheckedChangeListener;
  14. publicclassMainextendsActivityimplementsOnCheckedChangeListener{
  15. privateWifiManagerwifiManager;
  16. privateWifiInfowifiInfo;
  17. privateCheckBoxchkOpenCloseWifiBox;
  18. privateList<WifiConfiguration>wifiConfigurations;
  19. @Override
  20. publicvoidonCreate(BundlesavedInstanceState){
  21. super.onCreate(savedInstanceState);
  22. setContentView(R.layout.main);
  23. //获得WifiManager对象
  24. wifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE);
  25. //获得连接信息对象
  26. wifiInfo=wifiManager.getConnectionInfo();
  27. chkOpenCloseWifiBox=(CheckBox)findViewById(R.id.chkOpenCloseWifi);
  28. TextViewtvWifiConfigurations=(TextView)findViewById(R.id.tvWifiConfigurations);
  29. TextViewtvWifiInfo=(TextView)findViewById(R.id.tvWifiInfo);chkOpenCloseWifiBox.setOnCheckedChangeListener(this);
  30. //根据当前WIFI的状态(是否被打开)设置复选框的选中状态
  31. if(wifiManager.isWifiEnabled()){
  32. chkOpenCloseWifiBox.setText("Wifi已开启");
  33. chkOpenCloseWifiBox.setChecked(true);
  34. }else{
  35. chkOpenCloseWifiBox.setText("Wifi已关闭");
  36. chkOpenCloseWifiBox.setChecked(false);
  37. }
  38. //获得WIFI信息
  39. StringBuffersb=newStringBuffer();
  40. sb.append("Wifi信息\n");
  41. sb.append("MAC地址:"+wifiInfo.getMacAddress()+"\n");
  42. sb.append("接入点的BSSID:"+wifiInfo.getBSSID()+"\n");
  43. sb.append("IP地址(int):"+wifiInfo.getIpAddress()+"\n");
  44. sb.append("IP地址(Hex):"+Integer.toHexString(wifiInfo.getIpAddress())+"\n");sb.append("IP地址:"+ipIntToString(wifiInfo.getIpAddress())+"\n");
  45. sb.append("网络ID:"+wifiInfo.getNetworkId()+"\n");
  46. tvWifiInfo.setText(sb.toString());
  47. //得到配置好的网络
  48. wifiConfigurations=wifiManager.getConfiguredNetworks();
  49. tvWifiConfigurations.setText("已连接的无线网络\n");
  50. for(WifiConfigurationwifiConfiguration:wifiConfigurations){
  51. tvWifiConfigurations.setText(tvWifiConfigurations.getText()+wifiConfiguration.SSID+"\n");
  52. }
  53. }
  54. //将int类型的IP转换成字符串形式的IP
  55. privateStringipIntToString(intip){
  56. try{
  57. byte[]bytes=newbyte[4];
  58. bytes[0]=(byte)(0xff&ip);
  59. bytes[1]=(byte)((0xff00&ip)>>8);
  60. bytes[2]=(byte)((0xff0000&ip)>>16);
  61. bytes[3]=(byte)((0xff000000&ip)>>24);
  62. returnInet4Address.getByAddress(bytes).getHostAddress();
  63. }catch(Exceptione){
  64. return"";
  65. }
  66. }
  67. @Override
  68. publicvoidonCheckedChanged(CompoundButtonbuttonView,booleanisChecked){
  69. //当选中复选框时打开WIFI
  70. if(isChecked){
  71. wifiManager.setWifiEnabled(true);
  72. chkOpenCloseWifiBox.setText("Wifi已开启");
  73. }
  74. //当取消复选框选中状态时关闭WIFI
  75. else{
  76. wifiManager.setWifiEnabled(false);
  77. chkOpenCloseWifiBox.setText("Wifi已关闭");
  78. }
  79. }
  80. }




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

Java代码:

XML/HTML代码
  1. <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE">
  2. </uses-permission>
  3. <uses-permissionandroid:name="android.permission.WAKE_LOCK">
  4. </uses-permission>
  5. <uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE">
  6. </uses-permission>
分享到:
评论

相关推荐

    Android 控制wifi 相关操作实例

    Android 控制WIFI相关操作 WIFI的全称是Wireless Fidelity,又称802.11b标准,是一种高速的无线通信协议,传输速度可以达到11Mb/s。 实际上,对WIFI并不需要过多的控制(当成功连接WIFI后,就可以直接通过IP在WIFI...

    RK_Android平台WiFi&BT定频测试(RFTestTool)功能说明1

    1. 各家 WiFi BT 芯片驱动各不相同,因此各有各的定频测试软件 2. 定频测试一般是 APK+so/bin+特定驱动的形式,APK 用于操作界面,so/

    基于 Android 手机操作和控制的 Wifi 小车程序设计

    本文介绍了基于 Android 手机操作和控制的 Wifi 小车程序设计,希望对你的学习有所帮助。

    android_tcp_led_v1

    STM32F103VET6_ ESP8266-12F 手机或笔记本电脑WIFI控制LED的实现 Android调试端的测试代码,Android TCP 测试小软件。具体操作可以参考: http://blog.csdn.net/tcjy1000/article/details/70155897

    基于Android的Socket(TCP/IP)在 LED灯光控制系统中的应用.pdf

    基于Android的Socket(TCP/IP)在 LED灯光控制系统中的应用pdf,采用Socket的通信方法,根据TCP/IP通信协议进行数据传输,基于Android操作系统平台,通过Zigbee无线通信与自组网技术,设计了以Android操作系统为平台...

    Wifi控制的demo

    控制wifi连接,打开、关闭wifi,打开热点,删除记录,等操作

    Androidapi.JNI.Net.Wifi

    Delphi XE FMX加构下对移动平台的wifi控制与操作全部来源于它,相当给力与重要!

    Android WIFI 鼠标 笔记本触摸屏

    通过android手机运行app来控制pc的鼠标 无线、远程鼠标 模拟笔记本触摸屏的各种鼠标操作

    Android-app.rar

    Android 日记系统源码(数据库的基本操作) Android 极简强大VR本地播放器 Android 用handler机制联网获取图片 Android 百宝箱 Android 简单的翻译软件 Android 精美仿开眼视频跨平台App Android 自定义数字密码输入...

    格力智能空调连接wifi教程.pdf

    近程模式:⽤⼿机就能直接对格⼒智能空调进⾏控制,适⽤于在家⾥近距离操控,和普通 遥控器相⽐⼿机近程WiFi控制可轻松实现穿墙操作; 远程模式:需要家庭⽆线路由器与格⼒智能空调绑定到⼀起,即可在智能⼿机上⽹的...

    sony索尼相机SDK wifi控制程序,可控制拍照,对焦等常用操作

    sony索尼相机 wifi控制程序,控制拍照,调教,回传图像。亲测可用。该DEMO是安卓平台主要下的,其核心是个jar包,该包主要包含了和相机进行通信的相关代码。很清晰。如需要也可以用eclipse移植到win下。

    云台控制系统安卓软件与硬件代码设计包含说明文档详细的搭建过程开发流程

    云台控制系统是本人休息时间做的一款Android APP 具体功能为用户操作UI界面,进行上下左右操作,功能设置操作,将消息通过wifi传输给硬件,硬件通过串口或者USB接口将对应的消息传输给计算机,或者控制执行系统的...

    android手机控制键盘 无线输盘

    这是一个android程序,在手机上安装了pc端之后,你就可以通过wifi控制你的电脑了。 无线键盘:你可以使用无线键盘当做无线游戏手柄使用 无线鼠标:你可以使用无线鼠标可视化控制电脑,操作不受有线拘束功能一应俱全, ...

    wifi蓝牙.zip

    Android Wifi 蓝牙 demo。 包含如下demo: 蓝牙4.0 扫描、连接等操作demo ...Android通过蓝牙与设备连接,解决数据报文分段(通过时间控制)。动态修改动画 samsung android 蓝牙4.0开发工具包和BLE例子 等

    android 手机控制电脑 无线鼠盘 优化版

    这是一个android程序,在手机上安装了pc端之后,你就可以通过wifi控制你的电脑了。 无线键盘:你可以使用无线键盘当做无线游戏手柄使用 无线鼠标:你可以使用无线鼠标可视化控制电脑,操作不受有线拘束功能一应俱全, ...

    Remote Displayer for Android

    电脑端软件(ADRHOST.exe)支持快捷键操作,可实现全键盘控制。 目前仅支持网络连接的方式(WIFI、3G/4G),暂不支持USB。 仅支持Android5.0及以上版本的系统,无需ROOT权限。 特别说明:由于android-5.1.0_r5之前的...

    Android开发案例驱动教程 配套代码

    第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 ...

    【物联网+Android】Android手机APP封装MQTT连接阿里云物联网平台,远程点单片机灯源码.zip

    将MQTT协议和连接阿里云平台的操作通过Android studio写入APP中,并简单设计UI。实现手机APP远程控制单片机LED灯亮灭的功能。专栏为手把手完整实现STM32+ESP8266+MQTT+阿里云+APP物联网WIFI应用,以上五个部分全部...

    Android,手机遥控车辆APP,WIFI遥控,自定义遥控协议

    车俩与手机之间通过socket建立wifi通信,通过控制界面下发遥控命令,如油门,制动等,车俩接收到遥控指令,执行控制操作,并返回车俩的运行状态。

Global site tag (gtag.js) - Google Analytics