Android项目笔记六:自定义的wificlass

来源:互联网 发布:淘宝自动充值 编辑:程序博客网 时间:2024/04/30 11:17

由于时间比较紧,切没有接触过Android,这个CLASS写的很烂,但是功能正常:

1、判断wifi是否打开;

2、判断wifi是否连接;

3、扫面wifi列表;

4、连接指定wifi;

5、自动判断加密方式(无密码和WAP(2)已验证);

6、获得接入点IP;

7、关闭wifi;


public class MyWifiClass {


    /*private List<ScanResult>    my_list=null;*/


    public boolean my_WifiOpen(Context inContext){
        Context context = inContext.getApplicationContext();
        if(null == context){
            return false;
        }
        WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        if(!wifiMgr.isWifiEnabled()){
            wifiMgr.setWifiEnabled(true);
        }
        return wifiMgr.isWifiEnabled();
    }


    public void my_WifiClose(Context inContext){
        Context context = inContext.getApplicationContext();
        if(null == context){
            return ;
        }
        WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        if(wifiMgr.isWifiEnabled()){
            wifiMgr.setWifiEnabled(false);
        }
    }


    public List<ScanResult> my_WifiList(Context inContext){
        List<ScanResult>    list=null;


        Context context = inContext.getApplicationContext();
        if(null == context){
            return list;
        }
        WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        wifiMgr.startScan();//扫描wifi
        list = wifiMgr.getScanResults();//获得列表


        return list;
    }




    public  boolean isWiFiActive(Context inContext) {
        Context context = inContext.getApplicationContext();
        if(null == context){
            return false;
        }
        ConnectivityManager connectivity = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null) {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null) {
                for (int i = 0; i < info.length; i++) {
                    if (info[i].getTypeName().equals("WIFI") && info[i].isConnected()) {
                        return true;
                    }
                }
            }
        }
        return false;
    }


    public String  my_ReturnWifiName(Context inContext){


        Context context = inContext.getApplicationContext();
        if(null == context){
            return null;
        }
        WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        int wifiState = wifiMgr.getWifiState();
        WifiInfo info = wifiMgr.getConnectionInfo();
        String wifiId = info != null ? info.getSSID() : null;


        int i;
        char toChar;
        String returnString;
        returnString=null;
        if(wifiId != null){
            returnString = "";
            if(wifiId.charAt(0) == '\"'){
                for(i=1;i<wifiId.length()-1;i++){
                    toChar = wifiId.charAt(i);
                    returnString+=toChar;
                }
            }else {
                returnString = wifiId;
            }
        }


        return returnString;
    }


    public int my_getWifiIp_Int(Context inContext) {
        Context context = inContext.getApplicationContext();
        if(null == context){
            return 0;
        }


        WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);


    //    if (isWifiEnabled()) {
            int ipAsInt = wifiMgr.getConnectionInfo().getIpAddress();
            if (ipAsInt == 0) {
                return 0;
            } else {
                return ipAsInt;
            }
    //    } else {
    //        return null;
    //    }
    }


    public String my_getWifiIp_String(Context inContext) {
        Context context = inContext.getApplicationContext();
        if(null == context){
            return null;
        }


        WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);


        //    if (isWifiEnabled()) {
        int ipAsInt = wifiMgr.getConnectionInfo().getIpAddress();
        if (ipAsInt == 0) {
            return null;
        } else {
            return intToIp(ipAsInt);
        }
        //    } else {
        //        return null;
        //    }
    }






    public int my_getHOSTIp_Int(Context inContext) {
        Context context = inContext.getApplicationContext();
        if(null == context){
            return 0;
        }


        WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);


        //    if (isWifiEnabled()) {
        DhcpInfo dhcpinfo = wifiMgr.getDhcpInfo();
        if(null == dhcpinfo){
            return 0;
        }
        int     ipAsInt  = dhcpinfo.serverAddress;
        if (ipAsInt == 0) {
            return 0;
        } else {
            return ipAsInt;
        }
        //    } else {
        //        return null;
        //    }
    }


    public String my_getHOSTIp_String(Context inContext) {
        Context context = inContext.getApplicationContext();
        if(null == context){
            return null;
        }


        WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);


        //    if (isWifiEnabled()) {
        DhcpInfo dhcpinfo = wifiMgr.getDhcpInfo();
        if(null == dhcpinfo){
            return null;
        }
        int     ipAsInt  = dhcpinfo.serverAddress;
        if (ipAsInt == 0) {
            return null;
        } else {
            return intToIp(ipAsInt);
        }
        //    } else {
        //        return null;
        //    }
    }


    public boolean my_addNetword(Context inContext,String SSID,String Password){
        Context context = inContext.getApplicationContext();
        List<ScanResult> my_lisi=null;
        int Type=1;
        if(null == context){
            return false;
        }


        if(isWiFiActive(inContext)){
            my_disconnectWifi(inContext);
        }
        String  my_key;
        my_lisi=my_WifiList(inContext);
        for(int i=0;i<my_lisi.size();i++) {
            if(my_lisi.get(i).SSID.equals(SSID)){
                my_key=my_lisi.get(i).capabilities;
                if(my_key.contains("WPA")){
                    Type = 3;
                }else if(my_key.contains("WEP")){
                    Type = 2;
                }else {
                    Type = 1;
                }
                break;
            }
        }
/*        if(Password == null){
            Type = 1;
        }*/




        WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        WifiConfiguration my_wcg=null;
        my_wcg=CreateWifiConfiguration(inContext,SSID,Password,Type);
        if(null == wifiMgr){
            return false;
        }
        if(null == my_wcg){
            return false;
        }
        int wcgID= wifiMgr.addNetwork(my_wcg);
        wifiMgr.enableNetwork(wcgID,true);
        return true;
    }


        public void my_disconnectWifi(Context inContext){
        Context context = inContext.getApplicationContext();
        if(null == context){
            return;
        }
        WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        int wifiState = wifiMgr.getWifiState();
        WifiInfo info = wifiMgr.getConnectionInfo();
        int netID=info.getNetworkId();
        /*wifiMgr.disableNetwork(netID);*/
        wifiMgr.disconnect();
    }




    public List<WifiConfiguration> my_getWifiConfiguration(Context inContext){
        List<WifiConfiguration> wifiConfig=null;
        Context context = inContext.getApplicationContext();
        if(null == context){
            return null;
        }


        WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        if(null != wifiMgr){
            wifiConfig = wifiMgr.getConfiguredNetworks();
        }
        return wifiConfig;
    }


    public WifiConfiguration    CreateWifiConfiguration(Context inContext,String SSID,String Password,int Type){


        Context context = inContext.getApplicationContext();
        if(null == context){
            return null;
        }


        WifiManager wifiMgr = (WifiManager)(WifiManager) context.getSystemService(Context.WIFI_SERVICE);


        WifiConfiguration config = new WifiConfiguration();
        config.allowedAuthAlgorithms.clear();
        config.allowedGroupCiphers.clear();
        config.allowedKeyManagement.clear();
        config.allowedPairwiseCiphers.clear();
        config.allowedProtocols.clear();
        config.SSID="\""+SSID+"\"";


        WifiConfiguration tempConfig=this.IsExsits(inContext,SSID);
        if(null != tempConfig){
            wifiMgr.removeNetwork(tempConfig.networkId);
        }
        switch (Type){
            case 1: //WIFICIPHER_NOPASS
                config.hiddenSSID=true;
        //        config.wepKeys[0]="";
                config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
        //        config.wepTxKeyIndex=0;
                break;
            case 2://WIFICIPHER_WEP
                config.hiddenSSID = true;
                config.wepKeys[0]= "\""+Password+"\"";
                config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
                config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
                config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
                config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
                config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
                config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
                config.wepTxKeyIndex = 0;
                break;
            case 3://WIFICIPHER_WPA
                config.preSharedKey = "\""+Password+"\"";
                config.hiddenSSID = true;
                config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
                config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
                config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
                config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
                //config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
                config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
                config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
                config.status = WifiConfiguration.Status.ENABLED;
                break;
        }
        return config;
    }


    private WifiConfiguration   IsExsits(Context inContext,String SSID){
        List<WifiConfiguration> existingConfigs = null;
        existingConfigs = my_getWifiConfiguration(inContext);


        for(WifiConfiguration existingConfig : existingConfigs){
            if(existingConfig.SSID.equals("\""+SSID+"\"")){
                return existingConfig;
            }
        }
        return null;
    }








    private String intToIp(int i) {
        return (i & 0xFF ) + "." +
                ((i >> 8 ) & 0xFF) + "." +
                ((i >> 16 ) & 0xFF) + "." +
                ( i >> 24 & 0xFF) ;
    }
}

0 0
原创粉丝点击