zoukankan      html  css  js  c++  java
  • Android 常见的工具类

    /**
     * Wifi 管理类
     * 
     * @author Administrator
     *    使用方法
     *   WifiManagerUtils wifiManager = new WifiManagerUtils(context);
        if (wifiManager.isConnection())
        {
          Intent intent = new Intent(context, AseoZdpUpdateService.class);
          context.startService(intent);
        }
     * 
     */
    public class WifiManagerUtils {
        private WifiManager mWifiManager;
        private WifiInfo mWifiInfo;
        private List<ScanResult> mWifiList;
        private List<WifiConfiguration> mWifiConfiguration;
    
        public WifiManagerUtils(Context context) {
            this.mWifiManager = ((WifiManager) context.getSystemService("wifi"));
    
            this.mWifiInfo = this.mWifiManager.getConnectionInfo();
        }
    
        public boolean isConnection() {
            this.mWifiInfo = this.mWifiManager.getConnectionInfo();
    
            return (this.mWifiManager.isWifiEnabled()) && (this.mWifiInfo != null)
                    && (this.mWifiInfo.getBSSID() != null)
                    && (this.mWifiInfo.getIpAddress() != 0);
        }
    
        public boolean isConnection(String ssid) {
            this.mWifiInfo = this.mWifiManager.getConnectionInfo();
            if ((!this.mWifiManager.isWifiEnabled()) || (this.mWifiInfo == null))
                return false;
            String string = this.mWifiInfo.getSSID();
    
            return string.contains(ssid);
        }
    
        public int checkState() {
            return this.mWifiManager.getWifiState();
        }
    
        public List<WifiConfiguration> getConfiguration() {
            return this.mWifiConfiguration;
        }
    
        public void connectConfiguration(int index) {
            if (index > this.mWifiConfiguration.size()) {
                return;
            }
    
            this.mWifiManager
                    .enableNetwork(
                            ((WifiConfiguration) this.mWifiConfiguration.get(index)).networkId,
                            true);
        }
    
        public void startScan() {
            this.mWifiManager.startScan();
    
            this.mWifiConfiguration = this.mWifiManager.getConfiguredNetworks();
        }
    
        public List<ScanResult> getWifiList() {
            this.mWifiList = this.mWifiManager.getScanResults();
            return this.mWifiList;
        }
    
        public StringBuilder lookUpScan() {
            StringBuilder stringBuilder = new StringBuilder();
            for (int i = 0; i < this.mWifiList.size(); i++) {
                stringBuilder
                        .append("Index_" + new Integer(i + 1).toString() + ":");
    
                stringBuilder.append(((ScanResult) this.mWifiList.get(i))
                        .toString());
                stringBuilder.append("/n");
            }
            return stringBuilder;
        }
    
        public String getMacAddress() {
            return this.mWifiInfo == null ? "NULL" : this.mWifiInfo.getMacAddress();
        }
    
        public String getBSSID() {
            return this.mWifiInfo == null ? "NULL" : this.mWifiInfo.getBSSID();
        }
    
        public String getSSID() {
            return this.mWifiInfo == null ? "NULL" : this.mWifiInfo.getSSID();
        }
    
        public int getIPAddress() {
            return this.mWifiInfo == null ? 0 : this.mWifiInfo.getIpAddress();
        }
    
        public int getNetworkId() {
            return this.mWifiInfo == null ? 0 : this.mWifiInfo.getNetworkId();
        }
    
        public String getWifiInfo() {
            return this.mWifiInfo == null ? "NULL" : this.mWifiInfo.toString();
        }
    
        public void disconnectWifi(int netId) {
            this.mWifiManager.disableNetwork(netId);
            this.mWifiManager.disconnect();
        }
    
        public String Connect(String SSID, String Password, WifiCipherType type) {
            if (!this.mWifiManager.isWifiEnabled()) {
                return null;
            }
    
            this.mWifiInfo = this.mWifiManager.getConnectionInfo();
            String ssidString = getSSID();
            if ((ssidString != null) && (ssidString.contains("""))) {
                ssidString = ssidString.split(""")[1];
            }
    
            WifiConfiguration oldConfig = IsExsits(ssidString);
            if (oldConfig != null) {
                disconnectWifi(oldConfig.networkId);
            }
    
            WifiConfiguration tempConfig = CreateWifiInfo(SSID, Password, type);
            int tempID = this.mWifiManager.addNetwork(tempConfig);
            boolean ret = this.mWifiManager.enableNetwork(tempID, true);
            this.mWifiManager.reconnect();
    
            return ssidString;
        }
    
        public boolean RemoveWifiConfig(String ssid) {
            WifiConfiguration Config = IsExsits(ssid);
            if (Config == null) {
                return false;
            }
            this.mWifiManager.disableNetwork(Config.networkId);
            this.mWifiManager.removeNetwork(Config.networkId);
            return true;
        }
    
        public boolean Connect(String ssid) {
            if ((ssid != null) && (ssid.contains("""))) {
                ssid = ssid.split(""")[1];
            }
            WifiConfiguration tempConfig = IsExsits(ssid);
            if (tempConfig != null) {
                boolean bRet = this.mWifiManager.enableNetwork(
                        tempConfig.networkId, true);
                this.mWifiManager.reconnect();
            }
            return true;
        }
    
        public WifiConfiguration IsExsits(String SSID) {
            List existingConfigs = this.mWifiManager.getConfiguredNetworks();
            for (WifiConfiguration existingConfig : existingConfigs) {
                if (existingConfig.SSID.equals(""" + SSID + """)) {
                    return existingConfig;
                }
            }
            return null;
        }
    
        private WifiConfiguration CreateWifiInfo(String SSID, String Password,
                WifiCipherType type) {
            WifiConfiguration config = new WifiConfiguration();
            config.allowedAuthAlgorithms.clear();
            config.allowedGroupCiphers.clear();
            config.allowedKeyManagement.clear();
            config.allowedPairwiseCiphers.clear();
            config.allowedProtocols.clear();
            config.SSID = (""" + SSID + """);
    
            if (type == WifiCipherType.WIFICIPHER_NOPASS) {
                config.hiddenSSID = true;
                config.allowedKeyManagement.set(0);
            } else if (type == WifiCipherType.WIFICIPHER_WPA) {
                config.preSharedKey = (""" + Password + """);
                config.hiddenSSID = true;
                config.allowedAuthAlgorithms.set(0);
                config.allowedGroupCiphers.set(2);
                config.allowedKeyManagement.set(1);
                config.allowedPairwiseCiphers.set(1);
    
                config.allowedGroupCiphers.set(3);
                config.allowedPairwiseCiphers.set(2);
                config.status = 2;
            } else if (type == WifiCipherType.WIFICIPHER_WEP) {
                config.hiddenSSID = true;
                config.wepKeys[0] = (""" + Password + """);
                config.allowedAuthAlgorithms.set(1);
                config.allowedGroupCiphers.set(3);
                config.allowedGroupCiphers.set(2);
                config.allowedGroupCiphers.set(0);
                config.allowedGroupCiphers.set(1);
                config.allowedKeyManagement.set(0);
                config.wepTxKeyIndex = 0;
            }
            return config;
        }
    
        public static enum WifiCipherType {
            WIFICIPHER_WEP, WIFICIPHER_WPA, WIFICIPHER_NOPASS, WIFICIPHER_INVALID;
        }
    }
    View Code
  • 相关阅读:
    在SAP云平台上部署和运行Docker应用
    SAP ABAP maintanence view的数据校验机制
    SAP CRM user参数CRM_UI_PROFILE是在哪行ABAP代码里读取的
    sublime text的dockerfile语法高亮插件
    SAP Business Application Studio和SAP云平台Destination
    SAP UI5应用访问OData metadata的url和Destination
    SAP CRM note的自动拷贝
    合并二维数组
    redis命令手册
    redis性能测试工具的使用
  • 原文地址:https://www.cnblogs.com/luoyangcn/p/4973247.html
Copyright © 2011-2022 走看看