6

The Android M supports a new ACTION_CAPTIVE_PORTAL_SIGN_IN. Is there any sample available on how to capture this action. I tried with the normal way of registering for an action in both through the activity and through the broadcast receiver. However when I am connected with the captive portal wifi network, I am not receiving the actions. Someone please help

cuihtlauac
  • 1,690
  • 2
  • 16
  • 37
SGeorge
  • 75
  • 1
  • 5

1 Answers1

8

It can be used to allow your app to perform captive portal Wi-Fi sign in. Assuming you have something like this in your manifest:

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

Here is what can happen:

  1. Device connects to captive Wi-Fi portal
  2. System displays a captive portal notification
  3. User touches the notification
  4. System displays the implicit intent app chooser
  5. User selects SignInActivity
  6. SignInActivity is launched

You may access the extras mentioned in the ConnectionManager.ACTION_CAPTIVE_PORTAL_SIGN_IN using getIntent() and getParcelableExtra(). Use the ConnectivityManager.EXTRA_NETWORK extra (which has type Network) to communicate with the portal (i.e. pass sign in tokens), and the ConnectivityManager.EXTRA_CAPTIVE_PORTAL extra (which has type CaptivePortal) to communicate with the system about the outcome of the sign in.

cuihtlauac
  • 1,690
  • 2
  • 16
  • 37