使用ACTION_CAPTIVE_PORTAL_SIGN_IN

SGe*_*rge 6 android captivenetwork android-6.0-marshmallow

Android M支持新的ACTION_CAPTIVE_PORTAL_SIGN_IN.是否有关于如何捕获此操作的可用示例.我尝试了通过活动和广播接收器注册动作的正常方式.但是当我连接到强制门户网络wifi网络时,我没有收到动作.有人请帮忙

cui*_*uac 8

它可用于允许您的应用执行强制网络门户Wi-Fi登录.假设您的清单中有类似的内容:

<activity android:name=".SignInActivity">
    <intent-filter>
        <action android:name="android.net.conn.CAPTIVE_PORTAL"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

以下是可能发生的事情:

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

您可以访问ConnectionManager.ACTION_CAPTIVE_PORTAL_SIGN_IN使用getIntent()和中提到的额外内容getParcelableExtra().使用ConnectivityManager.EXTRA_NETWORKextra(具有类型Network)与门户进行通信(传递登录令牌),以及ConnectivityManager.EXTRA_CAPTIVE_PORTAL额外(具有类型CaptivePortal)与系统进行关于登录结果的通信.

  • 我在清单中设置了该设置,但始终会启动默认的登录页面,没有活动选择器,我还确保没有默认的应用程序可以处理该操作 (2认同)