本文转载自:http://blog.csdn.net/aaa1050070637/article/details/54136472

直接上代码,简单粗暴,一看就懂

  1. import android.content.Context;
  2. import android.net.ConnectivityManager;
  3. import android.net.NetworkInfo;
  4. import android.net.wifi.ScanResult;
  5. import android.net.wifi.WifiConfiguration;
  6. import android.net.wifi.WifiInfo;
  7. import android.net.wifi.WifiManager;
  8. import android.util.Log;
  9. import java.util.List;
  10. /**
  11. * create 2016.12.29
  12. *
  13. * @author jack大漠
  14. *
  15. */
  16. public class WifiConnect {
  17. private static final String SSID = "Sunlight";
  18. private static final String PASSWORD = "12345678";
  19. public static final String WIFI_IS_NOT_OPEN = "wifi is closed.";
  20. private static final String TAG = "vivi";
  21. public WifiManager mWifiManager = null;
  22. private Context mContext = null;
  23. private int mNetworkID = -1;
  24. public WifiConnect(Context context) {
  25. this.mContext = context;
  26. mWifiManager = (WifiManager) context
  27. .getSystemService(Context.WIFI_SERVICE);
  28. }
  29. /**
  30. * 网络是否连接
  31. */
  32. public boolean isWifiConnected() {
  33. if (mContext != null) {
  34. ConnectivityManager mConnectivityManager = (ConnectivityManager) mContext
  35. .getSystemService(Context.CONNECTIVITY_SERVICE);
  36. NetworkInfo mNetworkInfo = mConnectivityManager
  37. .getActiveNetworkInfo();
  38. if (mNetworkInfo != null
  39. && mNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
  40. return mNetworkInfo.isConnected();
  41. }
  42. }
  43. return false;
  44. }
  45. /**
  46. * Show wifi list
  47. */
  48. public String getWifiList() {
  49. if (WifiManager.WIFI_STATE_ENABLED != mWifiManager.getWifiState()) {
  50. return WIFI_IS_NOT_OPEN;
  51. }
  52. String text = "";
  53. List<ScanResult> results = mWifiManager.getScanResults();
  54. for (ScanResult result : results) {
  55. String SSID = result.SSID;
  56. if (SSID.startsWith("Sun")) {
  57. int db = result.level;
  58. text += SSID + ":" + db;
  59. return text;
  60. }
  61. }
  62. return "";
  63. }
  64. /**
  65. * 打开wifi开关
  66. */
  67. public void openWifi() {
  68. mWifiManager.setWifiEnabled(true);
  69. }
  70. public void closeWifi() {
  71. mWifiManager.setWifiEnabled(false);
  72. }
  73. /**
  74. * 是否打开开关
  75. */
  76. public boolean isWifiOpened() {
  77. return WifiManager.WIFI_STATE_ENABLED == mWifiManager.getWifiState();
  78. }
  79. public boolean isWifiEnable() {
  80. return mWifiManager.isWifiEnabled();
  81. }
  82. /**
  83. * 关闭开关
  84. */
  85. public void shutdownWiFi() {
  86. mWifiManager.setWifiEnabled(false);
  87. mNetworkID = -1;
  88. }
  89. /**
  90. * 连接指定Wifi
  91. */
  92. public boolean connectWifi(final String ssid, final String password,
  93. final SecurityMode mode) {
  94. WifiInfo info = getWifiInfo();
  95. Log.d(TAG, "connectWifi---->" + info.toString() + " ");
  96. if (isWifiConnected() && info != null
  97. && info.getSSID().equals("\"" + ssid + "\"")) {
  98. return true;
  99. }
  100. Log.d(TAG, "connectWifi---->" + isWifiConnected() + " ");
  101. List<WifiConfiguration> existingConfigs = mWifiManager
  102. .getConfiguredNetworks();
  103. if (existingConfigs == null) {
  104. return false;
  105. }
  106. for (WifiConfiguration existingConfig : existingConfigs) {
  107. if (existingConfig.SSID.equals("\"" + ssid + "\"")) {
  108. mNetworkID = existingConfig.networkId;
  109. break;
  110. }
  111. }
  112. if (mNetworkID <= -1) {
  113. WifiConfiguration config = new WifiConfiguration();
  114. config.SSID = "\"" + ssid + "\"";
  115. if (mode == SecurityMode.OPEN) {
  116. config.wepKeys[0] = "";
  117. config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
  118. config.wepTxKeyIndex = 0;
  119. } else if (password != null && !"".equals(password)) {
  120. if (mode == SecurityMode.WEP) {
  121. config.preSharedKey = "\"" + password + "\"";
  122. config.allowedAuthAlgorithms
  123. .set(WifiConfiguration.AuthAlgorithm.SHARED);
  124. config.allowedGroupCiphers
  125. .set(WifiConfiguration.GroupCipher.CCMP);
  126. config.allowedGroupCiphers
  127. .set(WifiConfiguration.GroupCipher.TKIP);
  128. config.allowedGroupCiphers
  129. .set(WifiConfiguration.GroupCipher.WEP40);
  130. config.allowedGroupCiphers
  131. .set(WifiConfiguration.GroupCipher.WEP104);
  132. config.allowedKeyManagement
  133. .set(WifiConfiguration.KeyMgmt.NONE);
  134. config.wepTxKeyIndex = 0;
  135. } else {
  136. config.preSharedKey = "\"" + password + "\"";
  137. config.allowedAuthAlgorithms
  138. .set(WifiConfiguration.AuthAlgorithm.OPEN);
  139. config.allowedGroupCiphers
  140. .set(WifiConfiguration.GroupCipher.TKIP);
  141. config.allowedKeyManagement
  142. .set(WifiConfiguration.KeyMgmt.WPA_PSK);
  143. config.allowedPairwiseCiphers
  144. .set(WifiConfiguration.PairwiseCipher.TKIP);
  145. config.allowedGroupCiphers
  146. .set(WifiConfiguration.GroupCipher.CCMP);
  147. config.allowedPairwiseCiphers
  148. .set(WifiConfiguration.PairwiseCipher.CCMP);
  149. config.status = WifiConfiguration.Status.ENABLED;
  150. }
  151. }
  152. mNetworkID = mWifiManager.addNetwork(config);
  153. }
  154. // 连接该网络
  155. return mWifiManager.enableNetwork(mNetworkID, true);
  156. }
  157. public WifiInfo getWifiInfo() {
  158. WifiInfo info = null;
  159. try {
  160. if (isWifiConnected()) {
  161. info = mWifiManager.getConnectionInfo();
  162. }
  163. } catch (Exception e) {
  164. Log.e(TAG, "getWifiInfo", e);
  165. }
  166. return info;
  167. }
  168. /**
  169. * 网络加密模式
  170. */
  171. public enum SecurityMode {
  172. OPEN, WEP, WPA2
  173. }
  174. /**
  175. * 初始化WiFi连接
  176. */
  177. public boolean initWifiConnect() {
  178. Log.d("vivi", "初始化Wifi连接---->" + " 开始连接");
  179. return connectWifi(SSID, PASSWORD, SecurityMode.WPA2);
  180. }
  181. }

Android连接wifi,调用系统API【转】的更多相关文章

  1. Android上传图片之调用系统拍照和从相冊选择图片

    Android上传图片之调用系统拍照和从相冊选择图片 本篇文章已授权微信公众号 guolin_blog (郭霖)独家公布 前言: 万丈高楼平底起,万事起于微末.不知不觉距离上篇博文已近四个月,2015 ...

  2. Android下载图片/调用系统相机拍照、显示并保存到本地

    package com.example.testhttpget; import java.io.BufferedReader; import java.io.FileNotFoundException ...

  3. 【Android学习】调用系统相机

    Android调用系统相机分三步走: 首先是要设置调用相机的权限. 其次是给按钮加打开相机的事件. 最后是拍照后进行图片的保存. 第一步,添加权限: <!-- 调用系统相机 --> < ...

  4. Android 连接Wifi和创建Wifi热点 demo

    android的热点功能不可见,用了反射的技术搞定之外. Eclipse设置语言为utf-8才能查看中文注释 上代码: MainActivity.java package com.widget.hot ...

  5. android 连接wifi案例

    1.xml布局文件: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln ...

  6. 【Android学习】调用系统短信、电话

    今天全心投入Android学习已经有一段时间了,从起初的啥也不懂,到现在半知半解状态,随笔记录些简单且常用的系统功能代码. 调用Android系统短信,其实调用短信非常简单,一个方法就可以搞定.我们可 ...

  7. 调用系统api修改系统时间

    一:截图 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System. ...

  8. android 7.0 调用系统相机崩溃的解决方案(非谷歌官方推荐)

    解决方案: 1.(推荐)7.0之后你的app就算有权限,给出一个URI之后手机也认为你没有权限. 不用修改原有代码,在Application的oncreate方法中:(或者直接放在调用相机的activ ...

  9. C# 调用系统API 内核 简单样例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...

随机推荐

  1. Vue编写轮播组件引入better-scroll插件无法正常循环轮播

    临近过年还是发个博客表示一下自己的存在感,这段时间公司突然说想搞小程序,想到这无比巨大的坑就只能掩面而泣,于是乎这段时间在学习小程序开发.关于标题所说的是有老铁问的,我也跟着网上的代码码了一遍然后发现 ...

  2. 2. TypeScript笔记

    1. 安装node.js之后 需要测试npm命令 2.命令正常安装TypeScript 3.安装Egret egret 命令

  3. 大数据学习——下载集群根目录下的文件到E盘

    代码如下: package cn.itcast.hdfs; import java.io.IOException; import org.apache.hadoop.conf.Configuratio ...

  4. 70.打印所有Spring boot载入的bean【从零开始学Spring Boot】

    [从零开始学习Spirng Boot-常见异常汇总] 问题的提出: 我们在开发过程当中,我们可能会碰到这样的问题:No qualifying bean  就是我们定义的bean无法进行注入,那到底是什 ...

  5. Linux基础之重定向|grep

    重定向 >    :覆盖输出>>    :追加输出 2>    :重定向错误输出2>>    : 追加方式 &>    : 重定向标准输出或者错误输出 ...

  6. hdu3516 Tree Construction (四边形不等式)

    题意:给定一些点(xi,yi)(xj,yj)满足:i<j,xi<xj,yi>yj.用下面的连起来,使得所有边的长度最小? 题解:直接给出吧 f[i][j]=min(f[i][k]+f ...

  7. IntelliJ IDEA平台下JNI编程—HelloWorld篇

    转载请注明出处:[huachao1001的专栏:http://blog.csdn.net/huachao1001/article/details/53906237] JNI(Java Native I ...

  8. 【BZOJ1237】配对(贪心,DP)

    题意:有n个a[i]和b[i],调整顺序使abs(a[i]-b[i])之和最小,但a[i]<>b[i].保证所有 Ai各不相同,Bi也各不相同. 30%的数据满足:n <= 104 ...

  9. androidstudio Cannot resolve symbol 'xxx'

    Android Studio 无法识别同一个 package 里的其他类,将其显示为红色,但是 compile 没有问题.鼠标放上去后显示 “Cannot resolve symbol XXX”,重启 ...

  10. 搭建Spring+mybatis报错

    java.lang.ClassCastException: com.sun.proxy.$Proxy12 cannot be cast to com.bdqn.service.impl.UserSer ...