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博客

相关推荐
阿巴斯甜16 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker17 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq952718 小时前
Andorid Google 登录接入文档
android
黄林晴19 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_2 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android