app内实现搜索wifi和连接wifi

Android App内WiFi扫描及连接 扫描筛选固定前缀的AP热点显示,点击列表item连接WiFi 一、功能梳理 1.权限检查 2.WiFi列表扫描 3.WiFi扫描结果筛选显示 4.连接特定wifi 二、WiFi扫描与连接需要申请的权限 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <u 阅读详情

权限:

<uses-permission android:name="android.permission.NETWORK_SETTINGS"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" />

核心api:

WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
// 打开WIFI
public void openWifi() {
    if (!mWifiManager.isWifiEnabled()) {
        mWifiManager.setWifiEnabled(true);
    }
}
//搜索wifi
private void getNearbyWifi(){
    openWifi();
    wifiAdmin.startScan();
}

//获取搜索到的wifi结果,扫描到wifi,系统会发出广播,定义一个recever并在其中拿到扫描结果

IntentFilter filter = new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
registerReceiver(mWifiScanReceiver, filter); // 注册WiFi扫描的广播接收器mWifiManager.getScanResults();

连接wifi,这里有个坑,需要吧targetSDKVersion定位28。目前对于高于28的target,我无法实现自动连接wifi。下面是wpa/wpa2的密码加密方式,其它的wifi密码加密方式由于被淘汰很久了,我没有copy。


public WifiConfiguration CreateWifiInfo(String SSID, String Password) {
    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);
    }
    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;
}
// 添加一个网络并连接
public void addNetwork(WifiConfiguration wcg) {
    int wcgID = mWifiManager.addNetwork(wcg);
    boolean b = mWifiManager.enableNetwork(wcgID, true);
    System.out.println("a----" + wcgID);
    System.out.println("b----" + b);
    boolean r = mWifiManager.reconnect();
    System.out.println("r----" + r);
}
用51单片机和esp8266实现通过手机app控制单片机小灯 这篇文章我在51黑电子论坛也发过,在这里再发一次。是自己在比赛的时候要使用这个esp8266模块,去查资料了解后,自己摸出来的方法。用51单片机和esp8266实现通过手机app控制单片机小灯,也可以控制其他外设,可以自行添加。附件为源程序,app可使用附件里面的安卓手机测试app或者ios系统可以去apple store下载netassist使用。设计目的:给所有客户提供一个标准全功能而又经济适... 阅读详情

相关推荐

《ESP32从0到1》之:wifi配置与连接

基于wifi->smart_config示例创建工程,实现wifi连接。 连接方式:打开手机app,输入wifi密码,点击确认即可完成快速配网。

u013534357的博客 2954

安卓实战开发之——使用 WIFI 进行设备搜索并获取相应信息

实现使用 WIFI 进行连接设备搜索并获取相应信息的功能案例

静水流深,沧笙踏歌 4069

Android系统自动连接Wi-Fi网络

在Android系统中,默认情况下,设备会自动连接可用的Wi-Fi网络。Android系统提供了一套强大的API,使开发者能够控制和管理Wi-Fi连接。下面是一个示例代码,展示了如何在Android应用程序中使用这些API来连接Wi-Fi网络。开发者可以根据自己的需求使用上述代码来管理Wi-Fi连接,以实现更灵活、智能的网络操作。的类,用于管理Wi-Fi连接。通过调用该类的方法,您可以打开/关闭Wi-Fi,连接/断开指定的Wi-Fi网络,并获取当前已连接的Wi-Fi网络信息。如果您有任何问题,请随时提问。

TechCraze的博客 1189

wifi工具类

忘哪儿看到的了,保存一下。

xiaoerbuyu1233的博客 455

英特尔® NUC迷你电脑实现无人值守自动开机配置指南

本文详细介绍了如何配置英特尔® NUC迷你电脑实现无人值守自动开机功能。从BIOS设置到操作系统级配置,涵盖硬件兼容性确认、电源恢复功能设置及常见问题解决,帮助用户轻松实现设备断电后自动恢复运行,适用于家庭服务器、企业终端等多种场景。

weixin_42638178的博客 474

Dynamics CRM证书更换

  Dynamics CRM产品一般有两种认证方式。第一种是基于声明的内部访问也就是无证书单纯用账号密码验证。第二种就是联合身份认证,需要安装网站证书。   对于联合身份认证的情况因为需要安装证书,而且证书是有一个一年的有效期,所以运维人员每年都需要进行证书更换的操作。以下就是更换证书的方法及过程。 证书根据申请方式一般也分两种,第一种是自建证书,这种证书是没有机构认证的所以安装上之后网站因为没...

bzpfly的博客 877

android进入wifi权限,使用NETWORK_SETTINGS权限防止在Android 9(Pie)上进行wifi扫描限制

由于有些人拥有noted,因此Android 9(Pie)会严格限制wifi扫描,从而削弱任何使用类似GPS的频率进行wifi记录或基于wifi的位置查找的应用程序.如上面链接的故障单中所述:>每个前景应用程序限制为每2分钟扫描4次>所有后台应用程序合并为每30分钟一次扫描>持有android.Manifest.permission.NETWORK_SETTINGS权限的应用程序...

weixin_34587698的博客 2889

专治疑难系列 - 解决打印机凭证冲突问题

一、问题描述 二、解决方法 三、问题已解决

Passerby_Wang的博客 2万+

WiFi和热点开发

WIFI的有关操作,系统提供了完备的API,供第三方app调用; 比如,开启和关闭wifi,获取wifi的状态,获取已保存的配置信息:getConfiguredNetworks(),获取当前连接的网络信息:getConnectionInfo() 等。 搜索网络:startScan() 搜索完成后,会收到WifiManager.SCAN_RESULTS_AVAILABLE_ACTION类型的广播,

qiandaxiong的博客 658

数据预处理之数据平滑处理#matlab

介绍基于 MATLAB 的数据平滑方法,主要介绍 smooth 函数、smoothts 函数和 medfilt1 函数的用法。

m0_56619132的博客 2416

卡尔曼滤波与目标追踪

卡尔曼滤波与目标追踪为什么要学卡尔曼滤波?卡尔曼滤波是什么?一些概率论的知识基础卡尔曼滤波完整推导状态估计计算卡尔曼增益预测和更新 卡尔曼滤波部分我打算分三节(三次博客的内容): 卡尔曼滤波与行人状态估计 扩展卡尔曼滤波(EKF)与传感器融合 过程模型,无损卡尔曼滤波(UKF)与车辆状态轨迹 为什么要学卡尔曼滤波? 卡尔曼滤波以及其扩展算法能够应用于目标状态估计,如果这个目标是行人,那么就是行人状态估计(或者说行人追踪),如果这个目标是自身,那么就是车辆自身的追踪(结合一些地图的先验,GPS等数据的话就

qq_43232556的博客 4173

【Android开发—智能家居系列】(二):用手机对WIFI模块进行配置

在实际开发中,我开发的这款APP是用来连接温控器,并对温控器进行控制的。有图为证,哈哈。      上一篇文章【Android开发—智能家居系列】(一):智能家居原理 的文末总结中写到:   手机APP控制智能温控器就两步:一是通过手机,让WIFI模块接入网络,而是通过网络,使用手机对模块发送指令。在这篇文章中,我们来介绍第一个步骤。 【时序图】    【概念】【两种模式】

To Begin,Begin   1万+

使用 WSL 在 Windows 上安装 Linux

开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,不用进行任何修改,也无需承担传统虚拟机或双启动设置的费用。

隔壁老瓦的专栏 2872

Wifi开发上层学习1:实现一个wifi搜索以及打开的app

Android WiFi控制应用开发 本文介绍了如何开发一个基本的WiFi控制应用,主要功能包括: 获取和修改WiFi状态 扫描并显示可用WiFi网络 记录和连接WiFi网络 开发要点: 需要添加WiFi状态访问和修改权限 Android 10+需位置权限,12+需附近设备权限 使用系统签名配置 界面包含开关、扫描按钮和列表视图 列表项显示WiFi名称、连接状态、信号强度和加密方式 该应用通过WifiManager API实现核心功能,可作为学习Android系统功能的入门实践。

giaoho的博客 742

最强AI插件Augment,适配idea、vscode,对标cursor!

Augment是一款新兴的AI辅助编码工具,能够无缝集成到IDEA和VS Code等主流IDE中,直接对标专业AI编码工具Cursor。其核心优势包括多IDE适配、无缝集成、代码理解与生成以及对话式编程体验。Augment通过插件形式保留原IDE功能和快捷键习惯,降低学习成本,同时提供深度理解项目上下文和生成高质量代码的能力。此外,Augment还具备审查变更、检查点、代理与代理自动等核心功能,支持从简单配置更改到复杂功能实现的各种开发任务。Augment代表了AI辅助编程工具的新方向,通过增强开发者熟悉的

todoitbo的博客 1万+

19、利用PostGIS进行空间分析:更高效的矢量分析方法

本文介绍了如何利用PostGIS进行高效灵活的矢量空间分析,重点探讨了在选址安静住宅场景中使用缓冲区和距离测量两种方法的实现与优化。通过QGIS与PostGIS结合,演示了数据上传、CTE应用、ST_Intersects与ST_Distance函数对比,并深入分析了横向子查询在提升查询性能和代码可读性方面的优势。文章还比较了不同方法的适用场景,并以房地产开发选址为例展示了完整分析流程,最后总结了PostGIS在空间分析中的强大能力与未来应用前景。

d3e4f的博客 92

Android开发—智能家居系列】(二):用手机对WIFI模块进行配置

  在实际开发中,我开发的这款APP是用来连接温控器,并对温控器进行控制的。有图为证,哈哈。   上一篇文章【Android开发—智能家居系列】(一):智能家居原理的文末总结中写到: 手机APP控制智能温控器就两步:一是通过手机,让WIFI模块接入网络,而是通过网络,使用手机对模块发送指令。在这篇文章中,我们来介绍第一个步骤。 【时序图】 ...

weixin_33973609的博客 231

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

zte机顶盒怎么投屏_怎么通过wifi,让电脑投屏电视

智能大屏走进千家万户的同时在公司里也频频出现。如今的新型会议室,往往会具体几台智能电视。这些会议室大屏幕,不像以前一样笨重,他们很便捷,能够安装软件,能够连接wifi。那么大屏在会议室时有什么作用呢。最直接的就是用来同事们开会了,假如会议室有wifi有电脑,但是没有转接线。如何做到让电脑的屏幕通过wifi投屏到电视上呢?电脑无线投屏今天这篇科普给大家分享一下,电脑无线投屏到电视的方法学会之后,在公...

weixin_28672681的博客 4165

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android+显示wifi并连接,如何以编程方式在Android中搜索并连接到特定的wifi网络

搜索可用的wifi网络public class MainActivity extends Activity {WifiManager mainWifi;WifiReceiver receiverWifi;StringBuilder sb = new StringBuilder();@Overridepublic void onCreate(Bundle savedInstanceState){su...

weixin_36012968的博客 600

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

android扫描wifi列表,android 生成wifi热点以及扫描连接wifi

public abstract class WifiAdmin {private static final String TAG ="Show";private WifiManager mWifiManager;private WifiInfo mWifiInfo;// 扫描出的网络连接列表private List mWifiList;private List mWifiConfiguration...

weixin_42584507的博客 872

扫描wifi热点

这是从网上收集到的一段扫描WIFI热点的代码,如下: package com.android.wifitester;  import java.util.List;  import android.app.Activity;  import android.content.BroadcastReceiver;  import android.con

diruser的专栏 2655

STM32+ESP8266 WiFi连接机智云平台APP远程控制教程

本文档将介绍如何用STM32+ESP8266 WiFi模块从零开始连接上机智云,并通过APP进行远程控制。机智云官网:机智云|智能物联网操作系统 (gizwits.com)准备:STM32、ESP8266、手机、可上网的WiFi。 请自行注册账号并登陆,这里不作展开。 进入开发者中心,点击创建产品:以照明产品为例,创建一个自定义方案的灯,如下:填写产品属性定义信息:创建之后,显示如下:点击“去编辑”,创建数据点,如下:产品创建完成后,点击左右功能栏的“MCU开发”:选择硬件平台

曾哥哥的博客 1万+

Android 搜索附近wifi并连接

最近项目需要做搜索附近wifi并连接的功能,一直没找到特别好的例子,结合网上的代码整理出一份供大家参考,只贴出了文中重点代码,废话补多说,上代码 1、java类,OperationWiFiActivity.java package com.jinlinbao.logisticsbox.ui.logisticsComm; import android.app.AlertDialo

宋中坤 2441

Android wifi列表扫描 密码连接 多个wifi切换登录 广播状态等都在这里

app里有个需求就是在应用内部开发一个wifi设置的功能,避免用户跳到手机wifi设置界面操作,之前没开发过这样的需求,只是简单的判断网络状态,不过心想应该不难,都是挺成熟的东西,其实做了后才知道还是有些坑的,今天来讲讲如何实现这个需求

Mango先生的博客 1万+

Flutter获取手机连接的Wifi信息

在开发需要设备配网功能的Flutter应用时,获取手机当前连接的Wifi信息是一个常见的需求。例如,在设备配网过程中,我们希望默认显示手机连接的Wifi,以提升用户体验。本文将详细介绍如何在Flutter中实现这一功能,包括所需的权限配置和代码实现。一、项目背景与需求最近,我在开发一个需要设备配网功能的应用。在配网过程中,...

qq_35485206的博客 1595
上一篇: windows虚拟机锁屏后连不上的问题
Fling_Pig
博客等级 码龄12年 41粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值