我正在使用我的Android设备作为移动Web服务器。我希望将连接到我的便携式Android热点的每个用户引导到特定的欢迎页面。
有人知道如何在我的设备上实现这种技术吗(我相信这被称为captive portal技术)?
有人知道如何在我的设备上实现这种技术吗(我相信这被称为captive portal技术)?
我将回答自己的问题,直到有人分享如何在非Root设备上实现强制门户的一些有用信息。
目前我不知道这样的可行解决方案。
强制门户通过拦截大多数网络数据包(使用防火墙),无论地址或端口如何,直到用户打开浏览器并尝试访问Web时才起作用。此时,浏览器将被重定向到可能需要身份验证等的网页。
因此,对于强制门户解决方案的存在,许多部分,如软件防火墙/路由器/ Web服务器需要集成和协作。考虑到非root手机中的当前限制/权限,我现在相信这样的应用程序可能不会存在。
@mmm2006:但是,如果您确实拥有Root设备,则可以使用像Paywall这样的应用程序来完成操作。
您还可以尝试实现自己的强制门户解决方案。这并不是微不足道的,但由于Android基于Linux内核,因此您可以尝试类似以下内容:
Android 11 - API Level 30 现已引入 Captive Portal。请查看这个新功能。 Captive Portal - API Level 30 - 新功能
dnsmasq
,作为一个使用hostapd
的WiFi接入点,以便所有流量都会传输到该设备(然后使用nginx提供默认页面或特定于域名的虚拟主机设置)。
这似乎会触发我的Android 7.0认为存在一个captivate门户网站(奇怪的是,它将我重定向到captivate.apple.com,显示我的默认URL)。
也许这将帮助您评估实施类似功能所需的底层Linux系统组件。很抱歉它并没有完全回答您的问题。
从Marshmallow开始,Android可以处理强制门户。欲了解更多详情,请访问https://developer.android.com/reference/android/net/CaptivePortal.html
在您的应用程序启动器活动中添加“android.net.conn.CAPTIVE_PORTAL”意图过滤器。