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.
- Removed built-in browser. Notification now launches default browser instead.
- Support for Material theme.
- Updated icon to look more like Material design.
- Bumped minimum API level to 15 (ICS).
- Removed ActionBarSherlock.
- When signed in to a portal, session timeouts are automatically detected (check interval is currently fixed, will be configurable in a future update).
- Added a link to rate the app in the settings screen.
- Fixed Starbucks portals not being detected.
- Updated ActionBarSherlock to version 4.3.1.
- Hopefully fixed the crash when signin activity finished.
- Better tablet experience (sign-in appears as dialog on screens 7" and up).
- UI changes (dark ActionBar).
- Updated ActionBarSherlock to 4.2.0.
- Fixed recent false portal notifications.
- Removed French and Turkish translations (too few installs to warrant maintaining).
- Portal notification shows the favicon from the sign-in page.
- Tapping on the portal notification now launches a custom browser window which automatically closes when the portal is signed in.
- Added support for the ICS prettiness!
- Fixed some portal detection bugs.
- Captivate is now more intelligent -- it automatically detects when you're logged into a portal, and if your session times out.
- Portal detection can be disabled in the settings.
- Spanish, Turkish, and French translations (thanks to Google Translate, so I can't vouch for their quality).
- Initial release.
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
.