Android 开启热点 获取热点 名和密码 适配Android O及以上

Android 开启热点

1.高于Android8.0 开启热点

下面展示一些 内联代码片

@RequiresApi(api = Build.VERSION_CODES.O)private void openApSystemO(final Callbak callbak) {if (isApOpen()) {if (!TextUtils.isEmpty(sid) && !TextUtils.isEmpty(pwd)) {callbak.onConnected("", sid, pwd);return;}//如果是自己开的可以关closeAp();}//关不掉,让用户关if (isApOpen()) {Log.e("TAG","热点关闭失败");callbak.onConnected("close wifi ap first please", null, null);return;}getWifiMgr().startLocalOnlyHotspot(new WifiManager.LocalOnlyHotspotCallback() {@Overridepublic void onStarted(WifiManager.LocalOnlyHotspotReservation reservation) {mReservation = reservation;sid = reservation.getWifiConfiguration().SSID;pwd = reservation.getWifiConfiguration().preSharedKey;callbak.onConnected("", sid, pwd);}@Overridepublic void onStopped() {mReservation = null;sid = "";pwd = "";}@Overridepublic void onFailed(int reason) {sid = "";pwd = "";callbak.onConnected("wifi ap is failed to open", null, null);}}, new Handler());}

2.低于Android8.0 开启热点
下面展示一些 内联代码片

private void openApBelow8(Callbak callbak) {if (getWifiMgr().isWifiEnabled()) {//如果wifi处于打开状态,则关闭wifi,getWifiMgr().setWifiEnabled(false);}if (isApOpen()) {sid = getApSSID();pwd = getApPassword();if (!TextUtils.isEmpty(sid) && !TextUtils.isEmpty(pwd)) {callbak.onConnected("", sid, pwd);return;} else {sid = "";pwd = "";}}WifiConfiguration config = new WifiConfiguration();config.SSID = "Scan-Wifi";config.preSharedKey = "Scan-Wifi@233";config.hiddenSSID = false;//是否隐藏网络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.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);config.status = WifiConfiguration.Status.ENABLED;try {Method method = getWifiMgr().getClass().getMethod("setWifiApEnabled",WifiConfiguration.class, Boolean.TYPE);Boolean result = (Boolean) method.invoke(getWifiMgr(), config, true);if (UText.isTrue(result)) {sid = "Scan-Wifi";pwd = "Scan-Wifi@233";callbak.onConnected("", sid, pwd);} else {sid = "";pwd = "";callbak.onConnected("wifi ap is failed to open", null, null);}} catch (Exception e) {sid = "";pwd = "";callbak.onConnected("wifi ap is failed to open", null, null);}}

3.热点是否打开 {@code true} 打开

public boolean isApOpen() {try {//反射获取 getWifiApState()方法Method method = getWifiMgr().getClass().getDeclaredMethod("isWifiApEnabled");method.setAccessible(true);return (boolean) method.invoke(getWifiMgr());} catch (Throwable ignored) {return false;}}

4.关闭热点

public void closeAp() {try {if (isSystemO()) {if (mReservation != null) {mReservation.close();mReservation = null;}} else {Method method = getWifiMgr().getClass().getMethod("setWifiApEnabled",WifiConfiguration.class, boolean.class);method.invoke(getWifiMgr(), null, false);}} catch (Exception ignored) {}}

亲测Android10.0 和Android6.0

代码下载地址:https://download.csdn.net/download/qq_34754268/22910187添加链接描述

Android 开启热点 适配8.0以上相关推荐

  1. android开启热点softap模式,[RK3288][Android6.0] Wifi开启热点(SoftAP)流程小结

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 在Settings中选择要打开wifi热点功能: 调用流程如下: onPreferenceChan ...

  2. Android开启热点后作为路由器,获取AP端IP地址

    最近在做类似面对面通信,需要一台手机作为AP端开启热点,另一台手机作为STA端连接热点,然后AP端告诉STA端它的IP地址,进行socket通信. 手机在联网时,就会被分配一个IP地址,它在开启热点时 ...

  3. android udp 广播通信,Android开启热点进行UDP通信中的坑

    1.写在前面: 2018年的第一篇文章,最近在使用UDP协议进行硬件通信,大家都知道UDP协议通信必须在同一个局域网内,但是每个用户家的wifi都是不一样的,硬件设备是无法只值连接到用户家的wifi的 ...

  4. wifi udp android,Android开启热点进行UDP通信中的坑

    1.写在前面: 2018年的第一篇文章,最近在使用UDP协议进行硬件通信,大家都知道UDP协议通信必须在同一个局域网内,但是每个用户家的wifi都是不一样的,硬件设备是无法只值连接到用户家的wifi的 ...

  5. ZUI易入门Android之客户端适配9.0方案

    目录 Section 1: 前言 1-4 1 概念 1-4 2 读者 1-4 3 参考文档 1-4 Section 2: 技术方案 2-5 1 所有应用的行为变更 2-5 1.1 非SDK开放接口 2 ...

  6. Android 8.0 学习(24)---Android8.0 WiFi热点适配

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

  7. 关于Android 8.0开启热点(HotSpot)

    关于Android 8.0开启热点(HotSpot) 开启热点(Android 8.0) 关闭热点(Android 8.0) 第一种方法: 第二种方法: 注意事项: 问题1: 解决: 问题2: 解决: ...

  8. Android 系统(98)---Android app 在线更新那点事儿(适配Android6.0、7.0、8.0)

    Android app 在线更新那点事儿(适配Android6.0.7.0.8.0) 一.前言 app在线更新是一个比较常见需求,新版本发布时,用户进入我们的app,就会弹出更新提示框,第一时间更新新 ...

  9. android自动切换暗色,超实用!Android 深色模式适配(可定时开启的APP内主题切换管理工具)...

    前言 前面分享了一篇"黑白化主题"的文,主要适用场景是不久就要到来的"清明"等时节或者是其他的国家公祭日什么的(一名成熟的程序员,要学会自己提产品需求). 今天 ...

  10. Android简单适配9.0~12.0

    适配6.0~8.0的可以看下这个: 适配Android6.0到8.0详细过程--小白教程 注意:10.0到12.0的都是些网上看到的资料,我就适配到10.0的文件存储,如有不对的,可以留言,我会查阅修 ...

最新文章

  1. 【Android 逆向】函数拦截 ( ARM 架构下的插桩拦截 | 完整代码示例 )
  2. C# 创建网站 无法启动与停止的问题
  3. python 颜色_如何使用python中matplotlib库分析图像颜色
  4. java jar metainf_java – 从生成的jar文件中排除META-INF / maven文件夹
  5. 140303 命令行选项 ccf
  6. 华表 java_华表基础(转)
  7. abp vnext数据库迁移(新建库)
  8. android timepicker 时间上限,利用Android TimePicker 和 DatePicker 实现对时间的限制
  9. android 模拟器 root
  10. 如何让linux自动调整时间同步,如何让Linux时间与internet时间同步(CentOS)?
  11. 山东省农村信用计算机社考试,山东省农村信用社计算机专业考试题
  12. 软件工程导论第六版 第一章 软件工程学概述知识点总结(上)
  13. 2022年字节跳动JAVA面试,JVM调优和调优,附面试题答案
  14. 【Hack The Box】linux练习-- Ophiuchi
  15. MessageBox提示框自动关闭
  16. 小程序实现老虎机抽奖动画
  17. 本地项目连接虚拟机的数据库oracle
  18. 《我的PaddlePaddle学习之路》笔记一——PaddlePaddle的安装
  19. 计算机视觉——SIFT描述子
  20. android nfc 原始读取,Android NFC读取数据

热门文章

  1. 计算机网络拓扑图 模板,网络拓扑图绘制.doc
  2. 谁说大象不能跳舞读后感
  3. 张涵诚对于税务信息化跨入大数据云计算时代的思考
  4. mysql实验报告4_实验四∶数据库安全性实验报告.doc
  5. 布尔逻辑代数化简公式
  6. 学习笔记 | 通用能力提升
  7. 【Python】第2次作业:同符号数学运算
  8. 8.12 腾讯大战360 2133
  9. 如何查看征信报告上的不良信息?
  10. iOS GitHub上常用第三方框架与一些参考文本总结