我使用我的Android设备作为移动Web服务器。我想将通过我的便携式Android热点连接的每个用户定向到特定的wellcome页面。
有人知道如何在我的设备中实现这种技术(我相信这被称为captive portal技术)?
我回答了自己的问题,直到有人分享了一些有关如何在非root设备中实施强制网络门户的有用信息。
目前我不知道这样的工作解决方案。
强制门户通过拦截大多数网络数据包(使用防火墙)工作,无论地址或端口如何,直到用户打开浏览器并尝试访问Web。那时浏览器被重定向到可能需要认证等的网页。
因此,对于存在强制门户解决方案,许多部件(如软件防火墙/路由器/网络服务器)需要集成和协作。鉴于非根电话中的当前限制/权限,我现在相信这样的应用程序可能不存在。
@ mmm2006:但是,如果你确实有一个root设备,那么像Paywall这样的应用程序可以帮到你。
您还可以尝试实施自己的强制门户解决方案。这不是微不足道的,但由于Android基于Linux内核,你可以试试这样的东西:
我不确定在Android设备上执行此操作(我在这里搜索如何禁用android检查以获取captivate),但我在覆盆子pi上设置dnsmasq
,使用hostapd
作为WiFi接入点运行,以便所有流量都会来到设备(然后使用nginx提供默认页面或特定于域的虚拟主机设置)。
这似乎触发我的Android 7.0相信有一个迷人的门户网站(奇怪地指示我到captivate.apple.com,它显示我的默认网址)。
也许这将帮助您评估实现类似功能所需的底层Linux系统组件。对不起,它没有完全回答你的问题。
android处理来自marshmallow的俘虏门户以获取更多细节访问https://developer.android.com/reference/android/net/CaptivePortal.html
在您的应用启动器活动中添加“android.net.conn.CAPTIVE_PORTAL”意图过滤器