android wifi 的链接
来源:互联网 发布:单片机地址寄存器 编辑:程序博客网 时间:2024/06/05 18:53
wifi链接的步骤如下(至于wifi通讯部分是没有的):
1.得到wifimanager对象
// 构造器public WifiUtil(Context context) { // 取得WifiManager对象 mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); // 取得WifiInfo对象 mWifiInfo = mWifiManager.getConnectionInfo();}
2.检查wifi状态
// 检查当前WIFI状态public int checkState() { return mWifiManager.getWifiState();}
3.打开wifi
// 打开WIFIpublic void openWifi() { if (!mWifiManager.isWifiEnabled()) { mWifiManager.setWifiEnabled(true); }}
4.扫描wifi并得到最新扫描的结果
//扫描public void startScan() { mWifiManager.startScan(); // 得到扫描结果 mWifiList = mWifiManager.getScanResults(); // 得到配置好的网络连接 mWifiConfiguration = mWifiManager.getConfiguredNetworks();}
5.连接wifi
mConnect.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String pass = mPass.getText().toString(); mWifiInfo = new WifiInfo(name, pass); new Thread(new Runnable() { @Override public void run() { mWifiUtil.connectWifi(mWifiInfo); } }).start(); if (!mRegister) {//第一次链接注册链接成功的广播 mWifiBroadcastReceiver = new WifiBroadcastReceiver(); IntentFilter filter = new IntentFilter(); filter.addAction(WifiManager.RSSI_CHANGED_ACTION); //信号强度变化 filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); //网络状态变化(是否连接上WIFI) filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); //wifi是否打开 registerReceiver(mWifiBroadcastReceiver, filter); mRegister = true; } }});
public void connectWifi(com.example.a111.github_settings.bean.WifiInfo remove) { openWifi(); String pass = remove.getPass(); String ssid = remove.getName(); int type; if (pass.equals("null") || pass.equals("")) { pass = ""; type = 1; } else { type = 3; } addNetwork(CreateWifiInfo(ssid, pass, type));}
// 添加一个网络并连接public void addNetwork(WifiConfiguration wcg) { int wcgID = mWifiManager.addNetwork(wcg); mWifiManager.enableNetwork(wcgID, true);}
public WifiConfiguration CreateWifiInfo(String SSID, String Password, int Type) { 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(SSID); if (tempConfig != null) { mWifiManager.removeNetwork(tempConfig.networkId); } if (Type == 1) //WIFICIPHER_NOPASS { config.wepKeys[0] = ""; config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); config.wepTxKeyIndex = 0; } if (Type == 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; } if (Type == 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; } return config;}
wifi之间的通讯可以查看 这里
阅读全文
0 0
- android wifi 的链接
- Android 链接Wifi
- 记录:WiFi的链接
- android之代码链接wifi
- Android 判断wifi是否链接
- Android WiFi开发 博客链接
- 链接到指定的wifi
- android 判断wifi网络是否链接
- Android 用wifi链接设备调试
- android中获取当前链接wifi信息
- wifi链接
- 检查wifi或3g的链接
- win8删除链接过的WiFi信息
- Android的WIFI移植
- Android Wifi的使用
- android的wifi编程
- android Wifi的补充
- Android的WiFi操作
- ssh--国际化
- springboot使用generator-mybatis插件自动生成mybatis文件
- 第11周 第三项 数据结构例程——图的遍历
- 自定义三级联动地址选择器
- WebSocket发送文字图片功能
- android wifi 的链接
- 路由音乐切换
- DARLA 源码解析
- imooc的疯狂的蚂蚁的课程《Python操作MySQL数据库》 python3+pymysql模块来操作mysql数据库
- 第13周项目1- 验证算法(3)
- 无限轮播
- 云星数据---Scala实战系列(精品版)】:Scala入门教程007-Scala数组详解006
- 第十二周项目一C/C++验证算法
- RN入门-新建rn项目