zoukankan      html  css  js  c++  java
  • 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.   
    9. import android.util.Log;  
    10.   
    11. import java.util.List;  
    12.   
    13. /** 
    14.  * create 2016.12.29 
    15.  *  
    16.  * @author jack大漠 
    17.  *  
    18.  */  
    19. public class WifiConnect {  
    20.     private static final String SSID = "Sunlight";  
    21.     private static final String PASSWORD = "12345678";  
    22.     public static final String WIFI_IS_NOT_OPEN = "wifi is closed.";  
    23.     private static final String TAG = "vivi";  
    24.     public WifiManager mWifiManager = null;  
    25.     private Context mContext = null;  
    26.     private int mNetworkID = -1;  
    27.   
    28.     public WifiConnect(Context context) {  
    29.         this.mContext = context;  
    30.         mWifiManager = (WifiManager) context  
    31.                 .getSystemService(Context.WIFI_SERVICE);  
    32.     }  
    33.   
    34.     /** 
    35.      * 网络是否连接 
    36.      */  
    37.     public boolean isWifiConnected() {  
    38.         if (mContext != null) {  
    39.             ConnectivityManager mConnectivityManager = (ConnectivityManager) mContext  
    40.                     .getSystemService(Context.CONNECTIVITY_SERVICE);  
    41.             NetworkInfo mNetworkInfo = mConnectivityManager  
    42.                     .getActiveNetworkInfo();  
    43.             if (mNetworkInfo != null  
    44.                     && mNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {  
    45.                 return mNetworkInfo.isConnected();  
    46.             }  
    47.         }  
    48.         return false;  
    49.     }  
    50.   
    51.     /** 
    52.      * Show wifi list 
    53.      */  
    54.     public String getWifiList() {  
    55.         if (WifiManager.WIFI_STATE_ENABLED != mWifiManager.getWifiState()) {  
    56.             return WIFI_IS_NOT_OPEN;  
    57.         }  
    58.         String text = "";  
    59.         List<ScanResult> results = mWifiManager.getScanResults();  
    60.         for (ScanResult result : results) {  
    61.             String SSID = result.SSID;  
    62.             if (SSID.startsWith("Sun")) {  
    63.                 int db = result.level;  
    64.                 text += SSID + ":" + db;  
    65.                 return text;  
    66.             }  
    67.         }  
    68.         return "";  
    69.     }  
    70.   
    71.     /** 
    72.      * 打开wifi开关 
    73.      */  
    74.     public void openWifi() {  
    75.         mWifiManager.setWifiEnabled(true);  
    76.     }  
    77.   
    78.     public void closeWifi() {  
    79.         mWifiManager.setWifiEnabled(false);  
    80.     }  
    81.   
    82.     /** 
    83.      * 是否打开开关 
    84.      */  
    85.     public boolean isWifiOpened() {  
    86.         return WifiManager.WIFI_STATE_ENABLED == mWifiManager.getWifiState();  
    87.     }  
    88.   
    89.     public boolean isWifiEnable() {  
    90.         return mWifiManager.isWifiEnabled();  
    91.     }  
    92.   
    93.     /** 
    94.      * 关闭开关 
    95.      */  
    96.     public void shutdownWiFi() {  
    97.         mWifiManager.setWifiEnabled(false);  
    98.         mNetworkID = -1;  
    99.     }  
    100.   
    101.     /** 
    102.      * 连接指定Wifi 
    103.      */  
    104.     public boolean connectWifi(final String ssid, final String password,  
    105.             final SecurityMode mode) {  
    106.         WifiInfo info = getWifiInfo();  
    107.         Log.d(TAG, "connectWifi---->" + info.toString() + " ");  
    108.         if (isWifiConnected() && info != null  
    109.                 && info.getSSID().equals(""" + ssid + """)) {  
    110.             return true;  
    111.         }  
    112.         Log.d(TAG, "connectWifi---->" + isWifiConnected() + " ");  
    113.         List<WifiConfiguration> existingConfigs = mWifiManager  
    114.                 .getConfiguredNetworks();  
    115.         if (existingConfigs == null) {  
    116.             return false;  
    117.         }  
    118.         for (WifiConfiguration existingConfig : existingConfigs) {  
    119.             if (existingConfig.SSID.equals(""" + ssid + """)) {  
    120.                 mNetworkID = existingConfig.networkId;  
    121.                 break;  
    122.             }  
    123.         }  
    124.         if (mNetworkID <= -1) {  
    125.             WifiConfiguration config = new WifiConfiguration();  
    126.             config.SSID = """ + ssid + """;  
    127.             if (mode == SecurityMode.OPEN) {  
    128.                 config.wepKeys[0] = "";  
    129.                 config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);  
    130.                 config.wepTxKeyIndex = 0;  
    131.             } else if (password != null && !"".equals(password)) {  
    132.                 if (mode == SecurityMode.WEP) {  
    133.                     config.preSharedKey = """ + password + """;  
    134.                     config.allowedAuthAlgorithms  
    135.                             .set(WifiConfiguration.AuthAlgorithm.SHARED);  
    136.                     config.allowedGroupCiphers  
    137.                             .set(WifiConfiguration.GroupCipher.CCMP);  
    138.                     config.allowedGroupCiphers  
    139.                             .set(WifiConfiguration.GroupCipher.TKIP);  
    140.                     config.allowedGroupCiphers  
    141.                             .set(WifiConfiguration.GroupCipher.WEP40);  
    142.                     config.allowedGroupCiphers  
    143.                             .set(WifiConfiguration.GroupCipher.WEP104);  
    144.                     config.allowedKeyManagement  
    145.                             .set(WifiConfiguration.KeyMgmt.NONE);  
    146.                     config.wepTxKeyIndex = 0;  
    147.                 } else {  
    148.                     config.preSharedKey = """ + password + """;  
    149.                     config.allowedAuthAlgorithms  
    150.                             .set(WifiConfiguration.AuthAlgorithm.OPEN);  
    151.                     config.allowedGroupCiphers  
    152.                             .set(WifiConfiguration.GroupCipher.TKIP);  
    153.                     config.allowedKeyManagement  
    154.                             .set(WifiConfiguration.KeyMgmt.WPA_PSK);  
    155.                     config.allowedPairwiseCiphers  
    156.                             .set(WifiConfiguration.PairwiseCipher.TKIP);  
    157.                     config.allowedGroupCiphers  
    158.                             .set(WifiConfiguration.GroupCipher.CCMP);  
    159.                     config.allowedPairwiseCiphers  
    160.                             .set(WifiConfiguration.PairwiseCipher.CCMP);  
    161.                     config.status = WifiConfiguration.Status.ENABLED;  
    162.                 }  
    163.             }  
    164.             mNetworkID = mWifiManager.addNetwork(config);  
    165.         }  
    166.         // 连接该网络  
    167.         return mWifiManager.enableNetwork(mNetworkID, true);  
    168.   
    169.     }  
    170.   
    171.     public WifiInfo getWifiInfo() {  
    172.         WifiInfo info = null;  
    173.         try {  
    174.             if (isWifiConnected()) {  
    175.                 info = mWifiManager.getConnectionInfo();  
    176.             }  
    177.         } catch (Exception e) {  
    178.             Log.e(TAG, "getWifiInfo", e);  
    179.         }  
    180.         return info;  
    181.     }  
    182.   
    183.     /** 
    184.      * 网络加密模式 
    185.      */  
    186.     public enum SecurityMode {  
    187.         OPEN, WEP, WPA2  
    188.     }  
    189.   
    190.     /** 
    191.      * 初始化WiFi连接 
    192.      */  
    193.     public boolean initWifiConnect() {  
    194.         Log.d("vivi", "初始化Wifi连接---->" + " 开始连接");  
    195.         return connectWifi(SSID, PASSWORD, SecurityMode.WPA2);  
    196.     }  
    197.   
    198. }  
  • 相关阅读:
    81. Search in Rotated Sorted Array II
    33. Search in Rotated Sorted Array
    26. Remove Duplicates from Sorted Array
    977. Squares of a Sorted Array
    碎片知识
    boost::shared_ptr
    faster-rcnn代码阅读-训练整体流程
    faster-rcnn代码阅读-数据预处理
    进栈与出栈
    jupyter-notebook添加python虚拟环境的kernel
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/8010982.html
Copyright © 2011-2022 走看看