Android WIFI 如何检测特定 WIFI 连接何时可用
我需要检测何时有到特定 WIFI 网络的网络连接。
例如:当您走进家中,并且您的手机接收到您的家庭 WiFi 网络时,我希望收到一条通知,内容为“您不在家庭网络中,您想连接到您的家庭网络吗?”但我希望只有当我在我的特定房子里时才会发生这种情况。
我应该监听什么以及应该做什么测试来确保它是我的特定家庭网络,而不是另一个网络?
I need to detect when I have network connectivity to a SPECIFIC WIFI network.
For example: As soon as you walk into your house, and your phone picks up your home WiFi network, I would like a notification that says "You are not at your home network, would you like to connect to you Home?" But I would like that to only happen when I am at my specific house.
What should I listen for and what tests should I do to make sure it is my specific home network, and not another network?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用 BroadcastReceiver 来发现 wifi 网络已更改:
BroadcastReceiver 可能如下所示。
要检查特定的 MAC 地址,请参阅下面的 checkConnectedToDesiredWifi() 方法。
You can use BroadcastReceiver to find out that wifi network has changed:
The BroadcastReceiver may look like this.
And to check for specific MAC address see the checkConnectedToDesiredWifi() method bellow.
只要我们不提供免费服务所需的代码,我只能建议您在创建此类应用程序时阅读有关 Android 及其网络/Wifi 可能性的所有内容。
http://developer.android .com/reference/android/net/wifi/package-summary.html
如何在android中查看wifi是否已连接
如何在当前的 Android 系统中获取我的 wifi 热点 ssid
如何使用android API从android中获取wifi网络的名称?
获取 Android 上的 Wifi 接口名称
AndroidManifest.xml
( 最后一个,仅当您希望它检测您的位置时,以防止不必要的呼叫)
AndroidManifest.xml
As long, as we are nothing like code as you need, for free service, I can only recommend you, to read everything possible about Android and its Network/Wifi possibilities, when creating such app.
http://developer.android.com/reference/android/net/wifi/package-summary.html
how to see if wifi is connected in android
How to get my wifi hotspot ssid in my current android system
How to get name of wifi-network out of android using android API?
Get Wifi Interface name on Android
AndroidManifest.xml
(the last one, only if you want it to detect your location, to prevent unnecessary calls)
AndroidManifest.xml
使用标准代码列出所有可用网络:
开始扫描
注册数据接收器
在 FOR 块中,当您通过 SSID 或 BSSID 识别您的网络时,发挥您的魔力并采取行动
Use the standard code to list all available networks:
start the scan
register a receiver for the data
In the FOR block work your magic and take action when you identify your network by SSID or BSSID
我的一个项目遇到了完全相同的问题,花了一段时间才找到解决方案。
首先,“连接到 WiFi”是一个非常抽象的东西,事实证明也是如此。在实践中,人们通常指的是以下所有阶段:
所有这些阶段(以及其他几个阶段)都与不同的 Andoid 事件相关联。因此,言归正传,这是我的(稍作修改的)代码:
另外,不要忽视清单的适当权限:
而且我强烈怀疑您还需要:
I had exactly the same problem for a project of mine and it took a while to find a solution.
First of all, "connecting to a WiFi" is something very abstract, and it turns out rightly so. In practice, people usually mean all of the following:
All these stages (and several more) are associated with different Andoid events. So, without further ado, here is my (slightly modified) code:
Also, don't neglect the appropriate permissions to the manifest:
And I strongly suspect you will also need: