Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using ACTION_CAPTIVE_PORTAL_SIGN_IN

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

like image 317
SGeorge Avatar asked Oct 29 '15 23:10

SGeorge


1 Answers

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.

like image 141
cuihtlauac Avatar answered Nov 02 '22 20:11

cuihtlauac