android如何知道wifi连接是否具有互联网访问权限

sup*_*ero 2 android wifi android-intent android-wifi

我工作的公司是在镇上建立免费的无线热点.要连接到互联网,客户首先必须同意条款和条件,一个带有条款和接受按钮的简单表格.在他们接受之前,他们不会被授予完全的互联网访问权限.

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

我们提出的建议修复是假冒互联网访问,通过Android设备用来确定他们是否有互联网的流量槽.通过这样做,手机不会使用客户端3G网络.相反,流量将被我们阻止,直到他们发现他们需要接受电话中的这个小图标所指示的条款.它不是最好的解决方案,但它会帮助客户在月底收到意外的巨额账单:)

我的问题是我们需要什么流量来实现这个目标?它只是一个IP,世界上每个Android手机每次都需要使用它,看看他们是否可以通过wifi访问互联网(听起来不太可能),或者它是如何工作的?

Die*_*ade 9

这个问题有点陈旧,但我希望在实施自己的解决方案时分享我对这个主题的了解.

你想要做的基本上是一个强制门户.Android设备检测请求特定URL的强制门户网站,目前为http://connectivitycheck.gstatic.com/generate_204.如果他们收到204响应,那么就有连接.如果他们收到30倍的响应,那么就会有一个强大的门户网站.在这种情况下,用户将被提示使用门户网站的登录页面,他可以在该页面接受条款或提供其他信息.

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

要更好地进行调试,您应该记录客户端请求并查看他们登录网络时尝试访问的内容.这是因为强制门户的概念很常见,每个客户/平台都会请求自己的URL.

此外,您可以使用强制门户解决方案(如果尚未使用).有很多可以实现你想要的东西.仅举一点,看看Nodosplash,CoovaChilliWiFiDog.