android wifi连接

记住密码,第二次登录不必输入。
如果使用其他方式,可不可以。其实就是自己选择wifi。

********************

我根本没办法站在更高的维度去思考整个项目,认知也达不到,我很多的事情都不知道(信息不全),只知道派发的任务等等。做不到全局思考。
一对一的盒子,其实还是不要盒子更为方便使用。主攻互联网。
有盒子主攻电视信号与互联网。
本质上就是说其实屏幕中的板子(接收端)好像没有什么主要的作用。
还是感觉如果使用miracast在发送端,接收端都能自动启动,那么应该会更好。但是扫描到信号还需要连接啊,万一扫描到多个呢?怎么进行识别与连接呢?

所以,我这边主动连接也行,但是用apk作为连接盒子,接收信号的触发方式,是不是不太行啊。打开后必须打开软件进行连接,然后发送端发送信号。(好像非常的繁琐)
有什么解决方式呢?
确实连接wifi后记住密码,再次进入就直接登录是最好的。目前的问题就是记住密码也可以,但是再次连接需要确认,很麻烦。假如不需要确认就好了。
系统设置的wifi界面,可以记住密码,自动登录吗?想一想。(目前没有找到这种方式的可能性)

-----------------------------

如果用户不想先去打开wifi,那么怎么办,可以降低版本,用废弃的api试一试,最好能在应用程序中打开wifi,然后搜索过滤,然后弹出,然后输入密码连接,然后记住密码。下次进入直接连接。
目前不可以在程序内部打开wifi:那么就只能跳转过去先试试。可以跳转,但是不一会儿程序会退出是没有想到的。
打开wifi,然后跳回来进行连接可行吗?应该可,位置权限呢?

试一下,没有位置,可不可以找到wifi.答案是不可以。
###############################
那么可以这样,位置,wifi还是需要自己打开。然后筛选出来要的热点,提示用户去连接,连接成功后,后面再进去或者再打开wifi就会自动连接。
#######################

分析:
首先之前是两个界面,排除掉,还能避免多activity中socket的问题。
给你扫描,并且提示框,让你去填密码,然后去连接。(同一个界面完成)
分析:
第一个界面扫描那么多的wifi没有一点用处,而且还难看。只扫描到自己的zn812不就好了,然后就是去连接的问题。

在MainActivity中连接上wifi后,传递ip给PlayActivity,当时是想在playActivity中进行tcp连接,以便能进行按键操作。(猜测:按理来说,按照系统设置的那种方式应该是可以的。而wifiNetworkSpecifier那种方式可是需要进行绑定的)
#################目前的问题是使用wifiNetworkSpecifier虽然可以连接上,存储密码,但是每次进入还是需要点击一下确定,相当于就是还是需要一个点击连接的过程,而期望的是可以第一次连接后,以后再也不用点击连接了,这是最好的!!!

还有一种可能,需要的是进入之后自动连接,而一旦退出程序就需要将wifi连接进行断开。如果是这样的话,wifiSuggestion好像不能做到这样,还需进一步了解。假如真的用wifiSuggestion,那么就算返回也在连接着wifi,程序不接收数据了,那么假如外面的程序需要进行连接wifi网络进行看视频等操作呢?假如盒子联网,那么wifisuggestion也可以用。这样也挺好的。
假如盒子并没有联网,那么用户还需要将wifi网络切换,以便可以看视频。
总结:可以使用wifiSuggestion,但是会增加用户切换网络的操作。除非盒子可以联网。


需求:
输入一次密码后以后,再次进入不需要输入密码。而wifispecifier会进行提示,可不可以后台呢?
还有假如使用wifisuggestion,程序退出需要断开。
好了。也可以记住密码了。但是程序都退出了,wifi连接还在!这不是需要的,一旦退出,应该断开的。

#################################
思考:不知道那样可不可以,就按照wifiNetworkSpecifier与wifisuggestion结合的方式。??
WifiNetworkSpecifier 当程序关闭时,wifi会自动去连接。也就是系统级的不受控制。####
后来再次试了一下,发现原来一直是wifiSuggestion搞的鬼,其实WifiNetworkSpecifier 连接后,其实只要程序关闭了,连接就会断开!!!这是极好的,那么现在应该考虑的就是如何让他挂起的时候关闭,然后又进入程序的时候重新连接,但是不显示连接的提示确认框。
如何实现,当进去后再次进行连接?只能以后台的方式,不让看见了。


当使用wifiSuggestion是,发现也是这样,根本关不住连接。####只有第一次弹窗,接受建议并连接会有点慢。
当程序关闭后,连接仍然存在。除非你忘记网络,后面再次连接就不再弹窗了,而且系统不会再接收你的建议主动进行连接了()。(除非你重启wifi开关,或者重启设备)
假如你又忘记网络。只能再次重启wifi开关。
竟然关机后没打开程序的情况下自动连接!!!!
结论:只要你连接过一次,即使删除网络,只要wifi开关重新打开,还是能自动连接上。(等于系统替你这个app做主了)但是如果你的app被删除了,那么系统就不会连接了,因为app和网络连接是绑定的!!

---------------------

再次进入之后,由于数据清理掉了,所以导致还是会重新的扫描。不是数据的问题!!!!
可以在onStop中存储存,onRestart中读取,ondestroy中删除。   xxx
用户刚进入,那就扫描,显示一个框,假如扫描了多次呢?那就会显示多个框。是**扫描**的原因,还是遍历的问题?
现在的情况是,扫描多次,重复项显示一个提示框。
如果扫描1次,广播接收者可以知道,弹出一个框。
扫描到之后弹出框,关键就是她一直重复的扫描,导致多个提示框。
广播接收者一旦接收到之后,调用方法开始获取列表,所以可以在接收到的位置,获取列表的位置进行修改。
如何可以做到扫描到之后弹出一次框,那就是计数呗,再扫描到就不再弹出框了,就弹那一次!!!
应该是基本完成了,下面就是整合了。

----------------------------

官方文档的一些说明
*在android Q中,一旦应用程序被杀死,系统会自动断开我们通过WifiNetworkSpecifier连接的WiFi网络,并且没有办法阻止系统这样做。            很好,符合需求。
*如需触发与 Wi-Fi 网络的即时本地连接,请在标准 NetworkRequest 对象中使用 WifiNetworkSpecifier。
如需添加 Wi-Fi 网络以考虑为用户提供互联网访问权限,请使用 WifiNetworkSuggestion 对象。您可以通过分别调用 addNetworkSuggestions() 和 removeNetworkSuggestions() 来添加和移除自动连接网络选择对话框中显示的网络。这些方法不需要任何位置权限。
*一些电话 API、蓝牙 API 和 WLAN API 需要精确位置权限
如果您的应用以 Android 10 或更高版本为目标平台,则它必须具有 ACCESS_FINE_LOCATION 权限,才能使用 Wi-Fi API、Wi-Fi Aware API 或 Bluetooth API 中的多种方法。(https://developer.android.com/about/versions/10/privacy/changes?hl=zh-cn#enable-disable-wifi)

存疑:我觉得gpt指的应该是WifiNetworkSuggestion

当你使用 WifiNetworkSpecifier 连接到一个Wi-Fi网络时,这个连接是由Android系统的网络建议(Network Suggestions)API管理的。根据Android的设计,这种连接方式旨在为应用程序提供一种方式来确保它们可以连接到Wi-Fi网络,同时还能够为用户提供更流畅的网络体验。但这也意味着,一旦连接到了Wi-Fi网络,即便应用程序关闭,或者用户手动关闭并重新打开Wi-Fi开关,系统可能仍会自动重连到该网络。
避免自动重连的方法有限,因为这种行为是由系统控制的。但是,你可以尝试以下几种方法来管理或绕过这种自动重连的行为:
移除网络建议:如果你的应用使用了网络建议API来推荐连接到特定的Wi-Fi网络,你可以在某个时机(例如,用户离开了相关的应用功能区域)调用移除网络建议的API,来取消之前的建议。这可能会减少系统自动重连到该网络的可能性。
监听Wi-Fi状态变化:你可以在你的应用中注册一个BroadcastReceiver来监听Wi-Fi开关的状态变化(WifiManager.WIFI_STATE_CHANGED_ACTION)。当你检测到Wi-Fi被关闭并重新打开时,你可以尝试编程地断开当前的Wi-Fi连接或做出其他适当的处理。
使用Device Policy Manager(仅限企业或管理员应用):如果你的应用具有设备管理员权限,你可以使用Device Policy Manager来更精确地控制Wi-Fi连接。不过,这通常仅适用于企业环境或特定的应用场景。
用户指导:虽然这不是一个技术解决方案,你可以在应用内提供指导,告知用户如果他们不希望自动重新连接到某个Wi-Fi网络,可以手动忘记该网络。这需要用户进入设备的Wi-Fi设置中操作,对于普通应用来说,可能不是最优的用户体验。
请注意,对Wi-Fi连接的管理权大部分掌握在系统和用户手中,应用程序能做的操作有限。上述方法可以在一定程度上帮助管理Wi-Fi连接行为,但可能无法完全避免系统的自动重连机制

也还行,可以参考的:

Android wifiz自动连接 自动切换 适配 Android 10 api 29 失败问题_.getconfigurednetworks();报错-CSDN博客


android低版本解决方案:

Android:WiFi连接之一_android studio 获取wif连接密码-CSDN博客

android高版本解决方案:

Android Q - Connect wifi without approval - Stack Overflow

安卓Q10接入网络WifiNetworkSpecifier-腾讯云开发者社区-腾讯云 (tencent.com)

android - WifiNetworkSpecifier 绕过用户选择 - IT工具网 (coder.work)

Android 10+ Wifi连接(一) - 掘金 (juejin.cn)

Android WIFI(二)连接WIFI - 掘金 (juejin.cn)

wifiSuggestion与WifiSpecifier结合,可能有用:

android WifiNetworkSpecifier 热点_mob64ca12db3721的技术博客_51CTO博客

wifi网络连接速度的问题:####

用 WifiManager 代码连接热点的一些坑_wifinetworksuggestion-CSDN博客

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/794854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣经典150题第二题:移除元素

移除元素问题详解与解决方法 1. 介绍 移除元素问题是 LeetCode 经典题目之一,要求原地修改输入数组,移除所有数值等于给定值的元素,并返回新数组的长度。 问题描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等…

关于阿里云中RDS数据库的CPU使用率和内存使用率的20道高级面试题2

1. 什么是RDS数据库的CPU使用率?如何监控和管理它? RDS数据库的CPU使用率指的是数据库在执行各项操作时对CPU资源的占用情况。监控和管理CPU使用率可以通过RDS管理控制台来实现。 RDS管理控制台提供了多种工具和方法来查看和监控CPU的使用情况&#xf…

使用vue计算斐波那契数列的第n项

Vue的新特性主要关注于提升性能、优化开发体验以及增加组件的灵活性和可维护性。然而,Vue本身并不是专门用于实现动态规划(Dynamic Programming, DP)的库或框架。动态规划是一种在数学、计算机科学和经济学中使用的,通过把原问题分…

docker安装Nexus,maven私服

文章目录 前言安装创建文件夹设置文件夹权限docker创建指令制作docker-compose.yaml文件 查看网站访问网页查看密码 前言 nexus作为私服的maven仓库,在企业级应用中,提供了依赖来源的稳定性,为构建庞大的微服务体系,打下基础 安…

vue 浅解watch cli computed props ref vue slot axios nexttick devtools说明使用

Vue.js 是一个强大的前端框架,它提供了很多有用的功能和工具。你提到的这些特性(watch、cli、computed、props、ref、slot、axios、nextTick、devtools)在 Vue 中各自扮演着不同的角色。下面我会逐一解释这些特性如何在 Vue 中使用&#xff1…

Github 2024-04-05 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-05统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目6TypeScript项目3Vue项目2JavaScript项目1Go项目1Rust项目1Bruno: 专为API探索和测试而设计的开源IDE 创建周期:532 天开发语言:Ja…

20240405,数据类型,运算符,程序流程结构

是我深夜爆炸&#xff0c;不能再去补救C了&#xff0c;真的来不及了&#xff0c;不能再三天打鱼两天晒网了&#xff0c;真的来不及了呜呜呜呜 我实在是不知道看什么课&#xff0c;那黑马吧……MOOC的北邮的C正在进行呜呜 #include <iostream> using namespace std; int…

MySQL - 基础三

11、事务管理 CURD不加控制&#xff0c;会有什么问题&#xff1f; 当客户端A检查还有一张票时&#xff0c;将票卖掉&#xff0c;还没有执行更新数据库时&#xff0c;客户端B检查了票数&#xff0c;发现大于0&#xff0c;于是又卖了一次票。然后A将票数更新回数据库。这是就出现…

卸载Mysql方法

若因为安装失败或者其他原因&#xff0c;MySQL需要卸载重装&#xff0c;可参考以下内容。 &#xff08;1&#xff09;清空原有数据 ①通过/etc/my.cnf查看MySQL数据的存储位置 [atguiguhadoop102 software]$ sudo cat /etc/my.cnf [mysqld] datadir/var/lib/mysql ②去往…

向量数据库 | AI时代的航道灯塔

向量数据库 | AI时代的航道灯塔 什么是向量检索服务拍照搜商品 你使用过向量数据库吗&#xff1f;使用体验&#xff1f;为什么向量数据库能借由大模型引起众多关注向量数据库在当前AI热潮中是昙花一现&#xff0c;还是未来AI时代的航道灯塔&#xff1f; 今天的话题主要是讨论向…

【排列回溯】Leetcode 46. 全排列

【排列回溯】Leetcode 46. 全排列 ---------------&#x1f388;&#x1f388;题目链接&#x1f388;&#x1f388;------------------- used数组&#xff0c;其实就是记录此时temp 里都有哪些元素使用了&#xff0c;一个排列里一个元素只能使用一次。 class Solution {List&…

【HTML】CSS样式(二)

上一篇我们学习了CSS基本样式和选择器&#xff0c;相信大家对于样式的使用有了初步认知。 本篇我们继续来学习CSS中的扩展选择器及CSS继承性&#xff0c;如何使用这些扩展选择器更好的帮助我们美化页面。 下一篇我们将会学习CSS中常用的属性。 喜欢的 【点赞】【关注】【收藏】…

【数据结构与算法】探讨数据结构中的虚拟头节点

&#x1f331;博客主页&#xff1a;青竹雾色间 &#x1f331;系列专栏&#xff1a;数据结构与算法 &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 &#x1f331;往期博客 深入浅出&#xff1a;单链表的实现和应用 目录 前言什么是虚拟头节点&#xff1f;虚…

深入浅出 -- 系统架构之分布式CAP理论和BASE理论

科技进步离不开理论支撑&#xff0c;而当下大行其道的分布式架构&#xff0c;透过繁荣昌盛表象&#xff0c;底层同样离不开诸多分布式理论撑持。当然&#xff0c;相信诸位在学习分布式相关技术时&#xff0c;必然学到过两个分布式领域中的基础理论&#xff0c;即&#xff1a;CA…

【蓝桥杯嵌入式】RTC——实时时钟

一、RTC简介 RTC RTC—real time clock&#xff0c;实时时钟&#xff0c;主要包含日历、闹钟和自动唤醒这三部分的功能&#xff0c;其中的日历功能我们使用的最多。日历包含两个32bit的时间寄存器&#xff0c;可直接输出时分秒&#xff0c;星期、月、日、年。 从Cubemx里的配置…

糟糕,Oracle归档满RMAN进不去,CPU98%了!

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

Windows 11 中Docker的安装教程

选择正确的Docker版本 在Windows上&#xff0c;你可以安装两种类型的Docker&#xff1a;Docker Desktop和Docker Toolbox。Docker Desktop是针对Windows 10 Pro、Enterprise和Education版本的&#xff0c;这些版本内置了Hyper-V虚拟化支持。对于旧版本的Windows&#xff0c;比…

代码随想录算法训练营第三十一天| 理论基础、LeetCode 455.分发饼干、376. 摆动序列、53. 最大子序和

一、理论基础 文章讲解&#xff1a;https://programmercarl.com/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 1.贪心的定义 贪心的本质是选择每一阶段的局部最优解&#xff0c;从而达到全局最优解。例如&#xff0c;有一堆钞票&#xff0c…

什么是Ajax?怎么使用?

​ 文章目录 一、什么是Ajax二、全局刷新和局部刷新二、Ajax中使用XMLHttpRequest对象&#xff08;Ajax核心步骤&#xff09;1、创建异步对象2、给异步对象绑定事件3、异步对象的属性 readyState 表示异步对象请求的状态变化4、初始异步请求对象5、使用异步对象发送请求6、jso…

基于SpringBoot Vue汽车租赁系统

一、&#x1f4dd;功能介绍 基于SpringBoot Vue汽车租赁系统 角色&#xff1a;管理员、普通管理员、用户 管理员&#xff1a;管理员进入主页面&#xff0c;主要功能包括对系统首页、个人中心、用户管理、普通管理员管理、汽车类别管理、汽车信息管理、租车订单管理、取消订单管…