Android连接wifi,调用系统API【转】

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

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

[java] view plain copy

  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. }
时间: 2024-10-09 04:19:37

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

实例365(2)---------调用系统api修改系统时间

一:截图 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace SetDate { public partial cl

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

Android上传图片之调用系统拍照和从相册选择图片 前言: 万丈高楼平底起,万事起于微末.不知不觉距离上篇博文已近四个月,2015年12月17日下午发了第一篇博文,现在是2016年4月6日.时间间隔长的过分啊,我自己都看不下去了.原因呢?当然是自己的原因,其实是有很多时间来些博客的,但是这些时间都花在DOTA上了(还是太年轻啊).请原谅我的过错--. 一.概述: 现在几乎应用都会用到上传图片的功能,而要上传图片,首先得选择图片,本文不针对如何上传图片到服务器(每个项目与服务器交互的方式不同,因

VBS调用系统API

如Beep的API声明为 Public Declare Function Beep Lib “kernel32″ Alias “Beep” (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long 则使用方法如下 '创建对象 Set Wrap = CreateObject("DynamicWrapper") '注册API Wrap.Register "KERNEL32.DLL", "Beep"

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

Android上传图片之调用系统拍照和从相冊选择图片 本篇文章已授权微信公众号 guolin_blog (郭霖)独家公布 前言: 万丈高楼平底起,万事起于微末.不知不觉距离上篇博文已近四个月,2015年12月17日下午发了第一篇博文.如今是2016年4月6日.时间间隔长的过分啊,我自己都看不下去了. 原因呢?当然是自己的原因.事实上是有非常多时间来些博客的,可是这些时间都花在DOTA上了(还是太年轻啊).请原谅我的过错--. 一.概述: 如今差点儿应用都会用到上传图片的功能,而要上传图片,首先得

Android简单的调用系统相机和相册

  public void reasonAdd(View v)     {        final String [] strs=new String[]{"拍照","相册"};         AlertDialog.Builder builder=new AlertDialog.Builder(this);         builder.setTitle("照片");         builder.setItems(strs, new 

android 开发之 - 调用系统闪光灯

Android开发调用系统闪光灯. 添加权限: <!-- 调用闪光灯权限 --> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.CAMERA"/> <uses-feature android:name="android.hardwar

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

package com.example.testhttpget; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.http.HttpEntity; import org.apache.

android连接wifi相关知识

这里列了很多,但是大致可以分为四个主要的类ScanResult wifiConfiguration WifiInfo WifiManager (1)ScanResult,主要是通过wifi 硬件的扫描来获取一些周边的wifi 热点的信息. 在我们进行wifi 搜索的时候,一般会搜到这些信息,首先是接入点名字.接入点信息的强弱.还有接入点使用的安全模式,是WPA.WPE. 打开这个类,我们可以看到以下几个信息 BSSID 接入点的地址,这里主要是指小范围几个无线设备相连接所获取的地址,比如说两台笔

Android开发之调用系统图库及相机

在Android开发中经常会用到图片的上传功能,一般常用的是调用Android系统自带的图库及拍照功能.示例代码如下: Java代码: public class TestActivity extends Activity { public final static int PHOTO_ZOOM = 0; public final static int TAKE_PHOTO = 1; public final static int PHOTO_RESULT = 2; public static f