5

谁能建议如何在 android 应用程序中打开强制门户?

我已经浏览了以下链接 https://developer.android.com/reference/android/net/CaptivePortal.html 使用 ACTION_CAPTIVE_PORTAL_SIGN_IN

任何人都可以有一个完整的指南在 android 应用程序中使用强制门户吗?

4

3 回答 3

5

以下是推送强制门户的流程

在此处输入图像描述

使用以下 android 文档进行编程部分

https://developer.android.com/reference/android/net/CaptivePortal.html

认为这会有用

于 2017-10-16T15:45:27.917 回答
4

WifiPortalAutoLog是您可以使用的示例项目

如本答案中所述:这是一个示例场景:

  1. 设备连接到强制 Wi-Fi 门户
  2. 系统显示强制门户通知
  3. 用户触摸通知
  4. 系统显示隐式意图应用程序选择器
  5. 用户选择 SignInActivity
  6. MainActivity 启动

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>
于 2017-10-23T04:02:17.247 回答
0

所有 android 设备对于强制门户的工作方式都不相同。您需要根据您的应用要求进行检查。三星通过将门户重定向到他们的系统来使用 android 强制门户机制,在内部处理它并阻止其他强制门户请求并在自己的浏览器上显示。与三星一样,华为等其他一些供应商也使用自己的机制,只有一加、小米、HTC 等使用默认机制,因此可以使用门户意图过滤器重定向到应用程序,但不能用于其他。

<intent-filter>
  <action android:name="android.net.conn.CAPTIVE_PORTAL"/>
  <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

一个清楚地解释它的链接在这里:

https://community.arubanetworks.com/t5/Wireless-Access/Samsung-Captive-Portal-Detection/mp/405934#M78972

于 2019-06-14T07:13:15.933 回答