谁能建议如何在 android 应用程序中打开强制门户?
我已经浏览了以下链接 https://developer.android.com/reference/android/net/CaptivePortal.html 使用 ACTION_CAPTIVE_PORTAL_SIGN_IN
任何人都可以有一个完整的指南在 android 应用程序中使用强制门户吗?
谁能建议如何在 android 应用程序中打开强制门户?
我已经浏览了以下链接 https://developer.android.com/reference/android/net/CaptivePortal.html 使用 ACTION_CAPTIVE_PORTAL_SIGN_IN
任何人都可以有一个完整的指南在 android 应用程序中使用强制门户吗?
以下是推送强制门户的流程
使用以下 android 文档进行编程部分
https://developer.android.com/reference/android/net/CaptivePortal.html
认为这会有用
WifiPortalAutoLog是您可以使用的示例项目
如本答案中所述:这是一个示例场景:
在MainActivity您可以访问以下提到的附加功能ConnectionManager.ACTION_CAPTIVE_PORTAL_SIGN_IN
:
if (ConnectivityManager.ACTION_CAPTIVE_PORTAL_SIGN_IN.equals(intent.getAction())) {
从 bundle 中获取captivePortal
与系统通信有关登录结果的信息:
captivePortal = intent.getParcelableExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL);
使用 ConnectivityManager.EXTRA_NETWORK 额外(具有网络类型)与门户通信(即传递登录令牌):
net = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK);
加载 urlWebView
并记住在 manifest 中设置意图过滤器:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.net.conn.CAPTIVE_PORTAL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
所有 android 设备对于强制门户的工作方式都不相同。您需要根据您的应用要求进行检查。三星通过将门户重定向到他们的系统来使用 android 强制门户机制,在内部处理它并阻止其他强制门户请求并在自己的浏览器上显示。与三星一样,华为等其他一些供应商也使用自己的机制,只有一加、小米、HTC 等使用默认机制,因此可以使用门户意图过滤器重定向到应用程序,但不能用于其他。
<intent-filter>
<action android:name="android.net.conn.CAPTIVE_PORTAL"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
一个清楚地解释它的链接在这里: