Android 切换wifi小记
我手机是Android 7.1的魅族.相关网络权限注册之后,还有一个特别的权限就是<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />搞不懂开wifi与位置权限有啥关系。
一些基本配置方法网上都有,但有一个注意点,就是切换wifi时,通常会出现netid=-1的情况,是因为要连接的wifi是以前连接过的,通过WifiManager.getConfiguredNetworks();来获得已配置过的wifi的netid,但你当前已经连接了wifi,所以必须 WifiManager.disableNetwork(mWifiInfo.getNetworkId());先使当前连接的wifi不可用,然后再连接才行,不然手机老是切不了。因为需要切换之前判断要连接的wifi是否已配置过,如果配置过,则直接enableNetwoke(获得的已配置nedid,ture),否则,添加wifi,然后enable即可。
//判断wifi曾经是不是连接过
WifiConfiguration tempConfig = isExsits(ssid);
if (tempConfig != null) {
boolean enabled = wifiManager.enableNetwork(tempConfig.networkId, true);
Log.d(TAG, "enableNetwork status enable=" + enabled);
} else {
int netID = wifiManager.addNetwork(wifiConfig);
boolean enabled = wifiManager.enableNetwork(netID, true);
Log.d(TAG, "enableNetwork status enable=" + enabled);
}
private WifiConfiguration isExsits(String SSID) {
if (wifiManager != null) {
List<WifiConfiguration> existingConfigs = wifiManager
.getConfiguredNetworks();
for (WifiConfiguration existingConfig : existingConfigs) {
if (existingConfig.SSID.equals("\"" + SSID + "\"")) {
return existingConfig;
}
}
}
return null;
}
我在使用getConfiguredNetworks时,会出现Add permission check的提示,需要加上:
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return null;
}
Android 切换wifi小记的更多相关文章
- Android 8 Wifi 初始化过程
记录一下wifi初始化过程. packages/apps/Settings/src/com/android/settings/wifi/WifiSettings.java public void on ...
- 【Android】wifi开发
WIFI就是一种无线联网技术,常见的是使用无线路由器.那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网.如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为“热点 ...
- android.net.wifi的简单使用方法
获取Wifi的控制类WifiManager. WifiManager wm=(WifiManager)getSystemService(Context.WIFI_SERVICE); 接下来可以对w ...
- android开发 wifi开发工具类
import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Iterator; import j ...
- Android打开WIFI或者移动网络的代码实现
MainActivity如下: package wy.testnetwork; import java.lang.reflect.Field; import java.lang.reflect.Inv ...
- 【移动开发】Android中WIFI开发总结(二)
搞了好几天终于有点眉目了,这里接着总结一下Android中WiFi的使用,在前面(http://smallwoniu.blog.51cto.com/3911954/1334951)我们已经简单了解了W ...
- 【移动开发】Android中WIFI开发总结(一)
WIFI就是一种无线联网技术,常见的是使用无线路由器.那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网.如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为“热 ...
- Android 连接Wifi和创建Wifi热点 demo
android的热点功能不可见,用了反射的技术搞定之外. Eclipse设置语言为utf-8才能查看中文注释 上代码: MainActivity.java package com.widget.hot ...
- Android的WiFi开启与关闭
注意:要首先注册开启和关闭WiFi的权限, <?xml version="1.0" encoding="utf-8"?> <manifest ...
- android之wifi开发
WIFI就是一种无线联网技术,常见的是使用无线路由器.那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网.如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为“热点 ...
随机推荐
- 读Java8函数式编程笔记03_高级集合类和收集器
1. 方法引用 1.1. 一种引用方法的轻量级语法 1.1.1. 提供了一种简短的语法 1.1.2. 标准语法为Classname::methodName 1.2. 凡是使用Lambda表达式的地方, ...
- immutable.js学习笔记(六)----- OrderedSet
一.OrderedSet 二.普通Set 与 OrderedSet 注意:普通Set并不是严格的一定是升序的 三.takeWhile 四.升序 sort valueA - valueB 五.降序 va ...
- 【LeetCode字符串#03】图解翻转字符串中的单词,以及对于for使用的说明
翻转字符串中的单词 力扣题目链接(opens new window) 给定一个字符串,逐个翻转字符串中的每个单词. 示例 1: 输入: "the sky is blue" 输出: ...
- sql注入关键字
id=inurl:Produit.php?id=inurl:Profile_view.php?id=inurl:Publications.php?id=inurl:Stray-Questions-Vi ...
- 一文详解SpEL表达式注入漏洞
摘要:本文介绍了SpEL表达式以及常见的SpEL注入攻击,详细地介绍了部分漏洞攻击实例以及常用的漏洞检测与防御手段. 本文分享自华为云社区<SpEL表达式注入漏洞分析.检查与防御>,作者: ...
- h5与原生app通信的各种功能
import config from '@/config/index'; import cubeModule from '_public/CubeModule.json'; const _MIDEA_ ...
- liunx Ubuntu20.04怎么安装mysql
转载csdn:优秀的处女座 https://blog.csdn.net/qq_42481794/article/details/113923803
- CCRD_TOC_2007年12月_总第13期
中信国健临床通讯 2007年12月, 总第13期 ACR2007专辑 目 录 类风湿关节炎 1. 来自CORRONA的数据:TNF抑制剂停用后临床获益仍持续存在 Lee SJ, et ...
- js提示框触发和定时关闭
<!DOCTYPE html><meta charset="utf-8"> <script src="https://cdn.staticf ...
- vivado工具ila抓取的波形读取方法
保存ila文件 file-->export-->export ila_data.可以保存为ila格式或者vcd格式 (可以在modelism下转化为wlf文件后打开查看波形.) 打开保存后 ...