2016-07-13 8 views
3
String BACKSLASH = "\""; 
    String NETWROK_SECURITY_WEP = "WEP"; 
    String NETWROK_SECURITY_NONE = "NONE"; 
    String NETWROK_SECURITY_WPA = "WPA"; 
    String NETWROK_SECURITY_WPA2 = "WPA2"; 
    String NETWROK_SECURITY_WPA_WPA2 = "WPA/WPA2 PSK"; 
    String NETWROK_ADDITIONAL_SECURITY_TKIP = "TKIP"; 
    String NETWROK_ADDITIONAL_SECURITY_AES = "AES"; 
    String NETWROK_ADDITIONAL_SECURITY_WEP = "WEP"; 
    String NETWROK_ADDITIONAL_SECURITY_NONE = "NONE"; 
    int FAILED_TO_ADD_NETWORK = -1; 

    WifiConfiguration conf = new WifiConfiguration(); 
    String wifiName = sSid; 
    conf.SSID = BACKSLASH + wifiName + BACKSLASH; 
    String securityType = NETWROK_SECURITY_WPA_WPA2; 

    if (NETWROK_SECURITY_WEP.equalsIgnoreCase(securityType)) { 
    conf.wepKeys[0] = pass; 
    conf.wepTxKeyIndex = 0; 
    conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); 

    conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 
    } else if (NETWROK_SECURITY_NONE.equalsIgnoreCase(securityType)) { 
    conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); 
    } else if (NETWROK_SECURITY_WPA.equalsIgnoreCase(securityType) 
    || NETWROK_SECURITY_WPA2.equalsIgnoreCase(securityType) 
    || NETWROK_SECURITY_WPA_WPA2.equalsIgnoreCase(securityType)) { 
    conf.preSharedKey = BACKSLASH + pass + BACKSLASH; 
    conf.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 


    conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 
    conf.status = WifiConfiguration.Status.ENABLED; 

    conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 

    conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 

    conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 



    conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 


    conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
    conf.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 
    conf.allowedProtocols.set(WifiConfiguration.Protocol.WPA); 
    } 
    String wlanAdditionalSecurity = ""; 





if(NETWROK_ADDITIONAL_SECURITY_TKIP.equalsIgnoreCase(wlanAdditionalSecurity)) { 

    conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 


    conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
    } else if 
(NETWROK_ADDITIONAL_SECURITY_AES.equalsIgnoreCase(wlanAdditionalSecurity)) { 

    conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 

    conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
    } else if 
    (NETWROK_ADDITIONAL_SECURITY_WEP.equalsIgnoreCase(wlanAdditionalSecurity)) { 

    conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); 

    conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 
    } else if (NETWROK_ADDITIONAL_SECURITY_NONE.equalsIgnoreCase(wlanAdditionalSecurity)) { 



    conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.NONE); 
    } 
    WifiManager wifiManager = (WifiManager) 
    mContext.getSystemService(Context.WIFI_SERVICE); 
    int res = wifiManager.addNetwork(conf); 
    wifiManager.disconnect(); 
    wifiManager.reconnect(); 

    if (true) { 
    wifiManager.enableNetwork(res, true); 

    wifiManager.saveConfiguration(); 
    wifiManager.setWifiEnabled(true); 

    new AppPreferences(mContext).setPrefrenceLong("connectTime", 
    Calendar.getInstance().getTimeInMillis()); 
    } 
    if (res != -1) { 

    setFalseOther(mm); 
    notifyDataSetChanged(); 

    Intent i = new Intent(mContext, Connect.class); 
    i.putExtra("networkName", mm.getName()); 
    i.putExtra("networkId", mm.getId()); 
    i.putExtra("AdminID", mm.getUserId()); 
    i.putExtra("networkConnection", "true"); 

    mContext.startActivity(i); 

     } 

このコードは、Androidロリポップで動作しますが、マシュマロ.unableため 削除するには、プログラム変更の無線LAN設定のため マシュマロの次のWiFiネットワークにアンドロイドMでプログラムでWiFi設定を変更するための開発?

開発を接続する前にパスワードを保存していないと動作しない保存wifiaswordsを削除アンドロイドM?保存されているwifiaswordsを削除しないでください

答えて

1

android-Mのhttps://developer.android.com/guide/topics/security/permissions.html#normal-dangerousというこの文書に従って危険なアクセス許可のいずれかを使用しようとしている場合。あなたはアンドロイド-Mでそれらを使用するために実行時にアクセス権を要求する必要があります。https://developer.android.com/training/permissions/requesting.html

+0

すべての前提条件が同じ問題に直面していることを許可した後! –

+0

アクティビティファイルに実行時許可コードを書き込みます。 – Drv

+0

私はすでにアクティビティの中でmarshmallowに必要な実行時権限をすべて与えています。このコードは、marshmallowで動作していない接続用です。 –

関連する問題