Captivate is an Android app that does one very simple thing: whenever you connect to a wifi hotspot, it tries to determine if you are behind a captive portal. If you are, it shows a notification to let you quickly open the portal login page. If your session times out, Captivate will re-show the notification when you next turn on your screen.
It automates the process of opening a browser, trying to visit a webpage, getting redirected to the portal's login, then having to re-type the URL, or worse, go back to the app that opened the browser and re-share.
Test new features! Join the Captivate Testers Google+ Community to get access to beta versions of Captivate before they're released.
For developers: Captivate sends a broadcast intent whenever the portal state changes. See more below.
<img alt="Get it on Google Play" src="http://www.android.com/images/brand/get_it_on_play_logo_large.png" />
Whenever Captivate detects a portal, or a portal signin, or timeout, or anything, it broadcasts the intent com.zachklipp.captivate.intent.ACTION_PORTAL_STATE_CHANGED
. It includes two extras containing the current portal state, and information about the portal. The intent and extra names as of v1.1.0 are defined around here.
com.zachklipp.captivate.intent.EXTRA_PORTAL_STATE
One of the following (self-explanatory) strings (defined, as of v1.1.0, here):
unknown
no_portal
signin_required
signing_in
(currently not used)signed_in
com.zachklipp.captivate.intent.EXTRA_PORTAL_URL
A string URL that will take the user to the login page. As of v1.1.0, it only contains the URL used to check for redirects, so it's not the actual URL of the portal sign-in page. This is planned for the future (see issue #9).
To receive the intent, you must request permission com.zachklipp.captivate.permission.ACCESS_PORTAL_STATE
.