android如何知道wifi连接是否可以访问互联网

android如何知道wifi连接是否可以访问互联网,android,android-intent,wifi,android-wifi,Android,Android Intent,Wifi,Android Wifi,我工作的那家公司正在全城建立免费的wifi热点。要连接到互联网,客户首先必须同意条款和条件,一个包含条款和接受按钮的简单表单。在他们接受之前,他们不能完全访问互联网 我们遇到的问题是一些android设备,当您自动连接到wifi时,它们不再提示您使用此“登录”表单。相反,左上角会显示一个小的指示图标,表示在访问internet之前需要执行额外的注册步骤。与此同时,客户在使用互联网,他们相信他们在使用wifi,但实际上他们在使用3G和移动数据,这需要客户付费 我们提出的建议解决方案是,通过andr

我工作的那家公司正在全城建立免费的wifi热点。要连接到互联网,客户首先必须同意条款和条件,一个包含条款和接受按钮的简单表单。在他们接受之前,他们不能完全访问互联网

我们遇到的问题是一些android设备,当您自动连接到wifi时,它们不再提示您使用此“登录”表单。相反,左上角会显示一个小的指示图标,表示在访问internet之前需要执行额外的注册步骤。与此同时,客户在使用互联网,他们相信他们在使用wifi,但实际上他们在使用3G和移动数据,这需要客户付费

我们提出的建议解决方案是,通过android设备用来确定他们是否有互联网的通信量,通过信件伪造互联网接入。这样,手机就不会使用客户的3G网络。相反,流量将被我们阻止,直到他们明白他们需要接受手机上这个小图标所表示的条款。这不是ofc的最佳解决方案,但它将帮助客户在月底不会收到意外的巨额账单:)


我有一个问题我们需要什么流量才能让它工作?这是否只是一个IP,世界上每一部android手机每次需要查看是否可以通过wifi接入互联网时都在使用它(我觉得这很不可能),或者它是如何工作的?

如果我理解正确,用户每次连接时都会被要求确认。如果是这样的话,解决方案是使用类似于电话MAC的东西来识别用户,并将其保存在一个数据库中,当用户试图访问网络时,该数据库会被检查。 这确实留下了复制Mac的可能性(非常小)。在这种情况下,第一个用户之后的新用户(对于给定的MAC)将永远不会被询问。
因为我不是android程序员,我不知道提取每个新用户的MAC有多容易。不要以为这会很难。

这个问题有点老了,但我想分享一下我在实施自己的解决方案时对这个问题的了解

您想要做的基本上是一个捕获式门户。Android设备检测到捕获门户请求特定URL,当前为。如果他们收到204响应,则存在连接。如果他们收到一个30倍的响应,那么就有一个被捕获的门户。在这种情况下,用户会收到来自门户的登录页面的提示,在该页面中,用户可以接受条款或提供其他信息

每次设备连接到网络时都会发生这种情况。一旦连接,它会不断检查以确保网络仍然有可用的连接(我不知道检查的间隔是多少,但需要几分钟)

为了更好地进行调试,您应该记录客户端的请求,并查看它们在登录到您的网络时试图访问的内容。这是因为捕获门户的概念很常见,每个客户端/平台都请求自己的URL


此外,您还可以使用捕获门户解决方案(如果还没有使用的话)。有很多人可以实现你想要的。仅举一些例子,看看NodosplashCoovaChilliWiFiDog

“通过信件伪造互联网访问——安卓设备用来确定他们是否有互联网的流量通道。”对不起,我一个字也不懂。这里发生了什么?在连接wifi时,是否可以通过wifi使用数据,而不管wifi是否具有互联网连接?。据我所知,当启用wifi时,android将wifi置于数据之上。他们连接到互联网,但在接受条款之前,访问受到限制。安卓手机不知何故注意到没有互联网接入,我们唯一能做到这一点的方法就是尝试连接到某个地方。如果我们允许该流量,它将使用互联网的wifi连接,并遵守我们的限制,直到他们接受这些条款。@MadhukarHebbar您是对的,问题中描述的问题是,客户不理解他们需要在使用wifi连接之前接受这些条款。所以他们使用3G网络。这个问题的解决方案是,他们在本月底收到了巨额账单,允许通过wifi接入互联网,但必须承认其通过wifi连接互联网。这样做,就不会使用3G网络了。@ErikLandvall第一个问题,我不知道。第二个问题,是的。谢谢你花时间回答,但它没有解决问题。答案基本上在评论中。。没有答案感觉这不是标准行为。。。(现在有点恶心,不应该回答,但我知道我会忘记它)我接受你的回答,感觉这是你能得到的最接近的答案,但我问题的真正答案是这是一个糟糕的问题:)我报告的行为是不标准的,正如蒋伊德在我问题的评论部分所解释的。好的,我只想分享一些知识:)