Android8.0 WiFi热点适配

在Android8.0上用以前的方式调试WiFi热点的时候发现无法正常开启热点,于是查了下,发现之前的热点打开接口已经废弃。原先的接口WifiManager.java中setWifiApEnabled方法用来打开WiFi热点已经用不了了。

网上查是从Android7.1以后接口开始变化的,但我查Google给的源码时发现7.1.1-7.1.2版本都是没有变动,还是老的接口,从Android8.0才开始发生变化,比较奇怪,这个有兴趣的童鞋在去考究一下。

变动如下: 
frameworks/base/wifi/java/android/net/wifi/WifiManager.java

推荐我们使用: 
方法一: 
ConnectivityManager#startTethering(int, boolean, 
ConnectivityManager#OnStartTetheringCallback)} 

方法二:WifiManager#startLocalOnlyHotspot(LocalOnlyHotspotCallback)}.

此种接口应用层需要怎么用,先别着急,我们去查下原生setting的用法。

总结一下思路: 
1、配置WifiManager.setWifiApConfiguration(mWifiConfig)里面的参数,热点和WiFi 通常的配置一样,只要配置WifiApConfiguration对象,就可以配置我们想要的WiFi热点的名称、密码及加密方式; 
2、通过ConnectivityManager的startTethering方法来启动热点, 
注意参数的传递,第三个参数需要实现ConnectivityManager.OnStartTetheringCallback的本地回调,可以用来更新UI;

  Cm.startTethering(TETHERING_WIFI, true, mStartTetheringCallback, mHandler);
  • 1

3、特别注意,WiFi热点重新配置生效之前一定要做下 
mCm.stopTethering(TETHERING_WIFI);的动作,否则热点会打开异常; 
而且热点配置完密码重新生效有延时,需要关闭后延时一会重新打开才会正常; 
4、配置AndroidManinfest.xml权限

 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />
  • 最初我只配了第一个,没有加后面一个,运行时一直报错

App not allowed to read or update stored WiFi AP config 
追了一下发现才需要添加OVERRIDE_WIFI_CONFIG权限,但之前的接口没有说明这条,比较坑。

添加完OVERRIDE_WIFI_CONFIG权限后,热点打开正常。

Android 8.0 学习(24)---Android8.0 WiFi热点适配相关推荐

  1. Android抓包方法之Win7笔记本Wifi热点+WireShark工具

    Android抓包方法 之Win7笔记本Wifi热点+WireShark工具 前言 做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等. 第 ...

  2. Android开发——自动连接指定SSID的wifi热点(不加密/加密)

    最近在做一个项目,其中涉及到一块"自动连接已存在的wifi热点"的功能,在网上查阅了大量资料,五花八门,但其中一些说的很简单,即不能实现傻瓜式的拿来就用,有些说的很详细,但其中不乏 ...

  3. Android每周一个学习计划——RxJava2 0的学习使用

    序言:蜗壳已经退役一年多了,但是还是抵不住蜗壳在NBA界的影响力,最近NBA流行向"蜗壳挑战",事情起源于蜗壳给IT和北境之王设定了新赛季的挑战,然后众多球星也纷纷向蜗壳讨要挑战. ...

  4. android 8.0后台定位,Android8.0适配前台定位服务service的示例代码

    从Android 8.0开始系统为实现降低功耗,对后台应用获取用户位置信息频率进行了限制,每小时只允许更新几次位置信息,详细信息请参考官方说明.按照官方指引,如果要提高位置更新频率,需要后台应用提供一 ...

  5. Android 8 禁止 谷歌,谷歌Android8.0增降级保护功能:升级后不能降级

    [PConline资讯]一直以来,每当新版iOS系统发布,就意味着苹果即将关闭上一个iOS版本的验证通道,而升级到新版iOS系统的用户将无法降回原来的系统.现在, 谷歌Android系统似乎也要学苹果 ...

  6. 一加连续点Android版本号,一加5T Android8.0全国首刷/附加教程和ROM

    一加5T作为全面屏大军的一员,总算在11月和我们见面了,果核也在第一时间下单买到了一加5T,到手了第一件事就是刷机. 其实果核最早就有一台一加3,在出手没多久就看到了一加3刷安卓8.0的消息,当时那个 ...

  7. TensorFlow2.0学习笔记2-tf2.0两种方式搭建神经网络

    目录 一,TensorFlow2.0搭建神经网络八股 1)import  [引入相关模块] 2)train,test  [告知喂入网络的训练集测试集以及相应的标签] 3)model=tf.keras. ...

  8. Android Support Library 24.2.0 正式发布

    原文出处:http://blog.csdn.net/wxy318/article/details/52463998 近日,Google正式发布更新了Android Support Library Re ...

  9. Android8.0及以上系统 WiFi热点 版本适配

    代码地址如下: http://www.demodashi.com/demo/13907.html ###一.准备工作 开发环境:  jdk1.8  AS(3.0.1) 运行环境:  华为V10(And ...

最新文章

  1. 【风控流程】大数据风控代码逻辑
  2. 2019年最后的一天_2019最后一天的说说 2019最后一条朋友圈再见2019
  3. WCF项目的架构设计
  4. 如何理解Library List
  5. Android应用的基本组件介绍
  6. [android]-xml解析示便-SAX
  7. Oracle数据库常用undo查询思路
  8. vue设置金额和时间格式(团购倒计时下次一定)
  9. php编程输出心形图案_如何用C语言先输出一段文字如何再输出心形图案?
  10. linux下命令行操作快捷键及技巧
  11. python和java哪个好-现在Java和Python哪个前景更好?
  12. 回顾Vue计算属性VS其他语法有感
  13. android进阶(三)数据存储之Internal Storage
  14. 【更改google chrome浏览器路径的方法】
  15. 首届CCF计算机职业资格认证考试题解(C++)
  16. 5个适合提升自己的自学网站,每一个都很强大, 适合职场人自我提升的学习网站,利用起来,离加薪更近一步
  17. python average函数详解_Python内置函数详解——总结篇
  18. python柱状图纵轴刻度_Python数据分析:Matplotlib
  19. 台式电脑 硬件选购 扫盲普及贴
  20. 壹 2.2 整数表示

热门文章

  1. varnish几个工具命令行工作情况
  2. ubuntu12.04中安装SVN记录
  3. php跳过代码,PHP利用continue实现跳过本次循环中剩余代码的注意点
  4. Mysql优化之Order By/Group By
  5. java并发AtomicIntegerArray
  6. 浅入深出Vue:注册
  7. Xamarin.Android 隐藏软键盘
  8. linux 切换用户身份、su、sudo、/etc/sudoers
  9. 切换到 oracle的 hr用户下面练习
  10. [转]JavaScript 删除数组中指定值的元素