Android WiFi热点怎么开发
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"Android WiFi热点怎么开发"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android WiFi热点怎么开发"文章能帮助大家解决问
千家信息网最后更新 2025年02月01日Android WiFi热点怎么开发
这篇文章主要介绍"Android WiFi热点怎么开发"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android WiFi热点怎么开发"文章能帮助大家解决问题。
创建热点
1、根据加密类型、密码、是否隐藏等参数来创建热点
static WifiConfiguration createWifiConfig(String SSID, @WifiSecurityType int wifiCipherType, String password, boolean hiddenSSID) { WifiConfiguration wifiConfiguration = new WifiConfiguration(); wifiConfiguration.SSID = convertToQuotedString(SSID); wifiConfiguration.hiddenSSID=hiddenSSID;//是否隐藏热点true=隐藏,如果隐藏需要其他设备手动添加网络 switch (wifiCipherType) { case WifiSecurityType.SECURITY_NONE: wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); break; case WifiSecurityType.SECURITY_WEP: wifiConfiguration.allowedKeyManagement.set(KeyMgmt.NONE); wifiConfiguration.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN); wifiConfiguration.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED); if (!TextUtils.isEmpty(password)) { int length = password.length(); // WEP-40, WEP-104, and 256-bit WEP (WEP-232?) if ((length == 10 || length == 26 || length == 58) && password.matches("[0-9A-Fa-f]*")) { wifiConfiguration.wepKeys[0] = password; } else { wifiConfiguration.wepKeys[0] = '"' + password + '"'; } } break; case WifiSecurityType.SECURITY_WPA_PSK: wifiConfiguration.allowedKeyManagement.set(KeyMgmt.WPA_PSK); if (!TextUtils.isEmpty(password)) { if (password.matches("[0-9A-Fa-f]{64}")) { wifiConfiguration.preSharedKey = password; } else { wifiConfiguration.preSharedKey = '"' + password + '"'; } } break; case WifiSecurityType.SECURITY_WPA_EAP: wifiConfiguration.allowedKeyManagement.set(KeyMgmt.WPA_EAP); wifiConfiguration.allowedKeyManagement.set(KeyMgmt.IEEE8021X); wifiConfiguration.enterpriseConfig = new WifiEnterpriseConfig(); int eapMethod = 0; int phase2Method = 0; wifiConfiguration.enterpriseConfig.setEapMethod(eapMethod); wifiConfiguration.enterpriseConfig.setPhase2Method(phase2Method); if (!TextUtils.isEmpty(password)) { wifiConfiguration.enterpriseConfig.setPassword(password); } break; default: break; } return wifiConfiguration; }
然后调用WifiManager的setWifiApEnabled方法来设置wifiConfiguration,因为是隐藏的,需要通过反射:
try { Method method = mWifManager.getClass().getMethod( "setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE); boolean enable = (Boolean) method.invoke(mWifManager, config, true); if (enable) { Log.d("WiFi", "热点已开启"); } else { Log.d("WiFi", "创建热点失败"); } } catch (Exception e) { e.printStackTrace(); }
关闭热点
关闭热点比较简单,也是用上面的方法,第二个参数传false就行了:
public void closeWifiAp() { try { Method method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class); method.invoke(mWifiManager, null, false); } catch (Exception e) { e.printStackTrace(); } }
监听热点状态
热点的状态可以通过广播的方式来监听:
public static final String WIFI_AP_STATE_CHANGED_ACTION = "android.net.wifi.WIFI_AP_STATE_CHANGED";
不过这个变量是隐藏的,只能直接通过值来注册广播:
IntentFilter filter = new IntentFilter(); filter.addAction("android.net.wifi.WIFI_AP_STATE_CHANGED");
然后在广播中获取state:
int state = intent.getIntExtra("wifi_state", 0);
wifi热点有如下几种状态:
#WIFI_AP_STATE_DISABLED #WIFI_AP_STATE_DISABLING#WIFI_AP_STATE_ENABLED#WIFI_AP_STATE_ENABLING#WIFI_AP_STATE_FAILED
其他API:
获取WiFI热点当前状态,返回值就是上面五种状态:
public int getWifiApState()
判断WiFi热点是否打开:
public boolean isWifiApEnabled()
获取当前wifi热点的WifiConfiguration:
public WifiConfiguration getWifiApConfiguration()
关于"Android WiFi热点怎么开发"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
热点
状态
开发
方法
知识
广播
参数
行业
监听
不同
实用
内容
变量
可以通过
实用性
实际
密码
就是
手动
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库推荐量平台
安庆软件开发招聘
计算机等级考试模拟系统服务器
星界边境服务器怎么给管理
查分区的数据库
工业控制网络安全管理制度
台服哪个服务器人多
南宁网络安全工程师薪资高就业快
数学计算机网络技术
家庭服务器软件要求
南京 网络安全公司
隧道智能系统软件开发可行性报告
濮阳市网络安全办的主任
酒店的有线网络安全嘛
珍爱网直播软件开发
公安采集血液数据库系统啥原理
数据库大小写敏感
利用计算机技术网络技术
视频管理服务器 应用
在数据库中实体是什么意思
存储服务器自建
电脑服务器进不去桌面
数据库 索引 面试题
华为服务器编号在哪里查
自己安装服务器
大学数据库设计orcal
网展科技-让互联网更真实
数据库大赛
软件开发违约责任
数据库如何分离外键