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