Java 通过编程将新网络添加到android设备

Java 通过编程将新网络添加到android设备,java,android,networking,connection,wifi,Java,Android,Networking,Connection,Wifi,我需要通过以下代码以编程方式连接到设备的新wifi网络: ` ` 但我无法将网络添加到我的设备 问题在于无法添加到网络的网络配置 我不明白为什么不工作没有结果 请帮助我您应该将权限添加到清单中(和运行时权限) 您的日志怎么说?我看不懂很多消息,最后失败了这是日志mStopped=false mHashWindowFocus=true sendUserActionEvent()mView=null,并且输入事件接收器已被配置我知道权限没有问题 try { String ssid =

我需要通过以下代码以编程方式连接到设备的新wifi网络: `

`
但我无法将网络添加到我的设备 问题在于无法添加到网络的网络配置 我不明白为什么不工作没有结果
请帮助我

您应该将权限添加到清单中(和运行时权限)



您的日志怎么说?我看不懂很多消息,最后失败了这是日志mStopped=false mHashWindowFocus=true sendUserActionEvent()mView=null,并且输入事件接收器已被配置我知道权限没有问题
 try 
{
    String ssid = "\"" + SSID + "\"";
    String pass = "\"" + Pass + "\"";

    for (ScanResult result : results) 
    {
        if (result.SSID.equals(SSID)) 
        {  
            String security = getScanResultSecurity(result);
            if (security.equals("PSK")) {

                   WifiConfiguration con = new WifiConfiguration();
                   con.SSID = ssid;
                   AlertDialog a = new AlertDialog.Builder(MainActivity.this).create();
                   a.setMessage("in");
                   a.show();
                   con.preSharedKey = pass;
                   con.hiddenSSID = true;
                    con.status = WifiConfiguration.Status.ENABLED;
                    con.allowedGroupCiphers.set(WifiConfiguration.Grou  pCipher.TKIP);
                    con.allowedGroupCiphers.set(WifiConfiguration.Grou  pCipher.CCMP);
                    con.allowedKeyManagement.set(WifiConfiguration.Key  Mgmt.WPA_PSK);
                    con.allowedPairwiseCiphers.set(WifiConfiguration.P  airwiseCipher.TKIP);
                    con.allowedPairwiseCiphers.set(WifiConfiguration.P  airwiseCipher.CCMP);
                    con.allowedKeyManagement.set(WifiConfiguration.Key  Mgmt.NONE);
                    con.allowedProtocols.set(WifiConfiguration.Protoco  l.RSN);
                    con.allowedProtocols.set(WifiConfiguration.Protoco  l.WPA);

                    int ntid = wifimanager.addNetwork(con);

                    wifimanager.disconnect();
                    wifimanager.enableNetwork(ntid,true);
                    wifimanager.reconnect();
                    boolean b = wifimanager.saveConfiguration();
                    if (ntid != -1 && b) {

                        AlertDialog a2 = new AlertDialog.Builder(MainActivity.this).create();
                        a2.setMessage("saved");
                        a2.show();
                    }
                }

        }
    }
    catch (Exception ex) {
        AlertDialog a = new AlertDialog.Builder(MainActivity.this).create();
        a.setMessage(ex.getMessage());
        a.show();
    }
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />