Wifi 输入密码连接

来源:互联网 发布:花生壳映射外网80端口 编辑:程序博客网 时间:2024/05/02 02:02

项目源码完整下载地址
http://download.csdn.net/detail/pmqiujun/9564047


1、从搜索出来的列表中点击某项,进行输入密码连接

   String wifiItemSSID = null;        @Override        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,                long arg3) {            Log.i("ListOnItemClickListener", "start");            selectedItem = arg1;            String wifiItem = arrayWifiAdapter.getItem(arg2);// 获得选中的设备            wifiItemSSID = wifiItem;            Log.i("ListOnItemClickListener", wifiItemSSID);            SSID = wifiItemSSID;            int wifiItemId = localWifiUtils.IsConfiguration("\"" + wifiItemSSID                    + "\"");            Log.i("ListOnItemClickListener", String.valueOf(wifiItemId));            if (wifiItemId != -1) {                if (localWifiUtils.ConnectWifi(wifiItemId)) {// 连接指定WIFI                    Toast.makeText(ControlPCMainActivity.this,                            "当前已连接" + wifiItemSSID, 0).show();                    text_hint.setText("当前连接Wifi为: " + wifiItemSSID);                    SSID = wifiItemSSID;                }            } else {// 没有配置好信息,配置                WifiPswDialog pswDialog = new WifiPswDialog(                        ControlPCMainActivity.this,                        new OnCustomDialogListener() {                            @Override                            public void back(String str) {                                // TODO Auto-generated method stub                                wifiPassword = str;                                if (wifiPassword != null) {                                    int netId = localWifiUtils.AddWifiConfig(                                            wifiResultList, wifiItemSSID,                                            wifiPassword);                                    Log.i("WifiPswDialog",                                            String.valueOf(netId));                                    // -1 表示 添加密码信息失败                                    if (netId != -1) {                                        localWifiUtils.getConfiguration();// 添加了配置信息,要重新得到配置信息                                        if (localWifiUtils.ConnectWifi(netId)) {                                            Toast.makeText(                                                    ControlPCMainActivity.this,                                                    "当前已连接" + wifiItemSSID, 0)                                                    .show();                                            text_hint.setText("当前连接Wifi为: "                                                    + wifiItemSSID);                                            SSID = wifiItemSSID;                                        }                                    } else {                                        Toast.makeText(                                                ControlPCMainActivity.this,                                                "网络连接错误", Toast.LENGTH_SHORT)                                                .show();                                    }                                } else {                                }                            }                        });                pswDialog.show();            }        }    // 判定指定WIFI是否已经配置好,依据WIFI的地址BSSID,返回NetId        public int IsConfiguration(String SSID) {        Log.i("IsConfiguration", String.valueOf(wifiConfigList.size()));        for (int i = 0; i < wifiConfigList.size(); i++) {            Log.i(wifiConfigList.get(i).SSID,                    String.valueOf(wifiConfigList.get(i).networkId));            if (wifiConfigList.get(i).SSID.equals(SSID)) {// 地址相同                return wifiConfigList.get(i).networkId;            }        }        return -1;    }

2、以上为核心wifi连接的部分代码,主要是获取wifi配置信息,如果未配置,则添加配置信息并且添加如wifi。

0 0
原创粉丝点击