Android App中的强制门户

时间:2017-07-25 12:15:18

标签: android captivenetwork captiveportal

有人可以建议如何在Android应用程序中打开强制网站吗?

我已经通过以下链接 https://developer.android.com/reference/android/net/CaptivePortal.html Using ACTION_CAPTIVE_PORTAL_SIGN_IN

任何人都可以获得在Android应用程序中使用强制门户的完整指南吗?

3 个答案:

答案 0 :(得分:5)

以下是推动俘获门户的流程

enter image description here

使用以下android doc编程部分

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

认为这很有用

答案 1 :(得分:4)

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

如此answer中所述: 以下是一个示例场景:

  1. 设备连接到强制Wi-Fi门户
  2. 系统显示强制网络门户通知
  3. 用户触摸通知
  4. 系统显示隐式目标应用选择器
  5. 用户选择SignInActivity
  6. 推出MainActivity
  7. MainActivity中您可以访问 ConnectionManager.ACTION_CAPTIVE_PORTAL_SIGN_IN 中提到的其他内容:

    if (ConnectivityManager.ACTION_CAPTIVE_PORTAL_SIGN_IN.equals(intent.getAction())) {
    

    从包中获取captivePortal以与系统沟通有关登录结果的信息:

    captivePortal = intent.getParcelableExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL);
    

    使用ConnectivityManager.EXTRA_NETWORK extra(具有类型Network)与门户网站通信(即传递登录令牌):

    net = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK);
    

    WebView中加载网址并记住清单中的设置意图过滤器:

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

答案 2 :(得分:0)

对于强制门户,所有android设备均无法正常工作。您需要根据您的应用要求进行检查。三星通过将门户重定向到其系统来使用android强制门户网站机制,在内部进行处理并阻止其他强制门户请求并在其自己的浏览器上显示。像三星一样,华为等其他一些供应商也使用他们自己的机制,只有Oneplus,Mi,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/m-p/405934#M78972

相关问题