A customized version of the DHIS2 Android Capture App with automatic login capabilities via deep links and intent extras.
This is a fork of the official DHIS2 Android Capture App that adds auto-login launcher support, enabling:
- Seamless authentication via deep links
- Intent-based credential passing from launcher apps
- URL-encoded parameter support for special characters
- Automatic server validation and login flow
Perfect for organizations that need to launch the DHIS2 app with pre-configured credentials from custom launcher applications.
Launch the app with credentials automatically filled and authenticated:
Via Intent Extras:
adb shell am start -n com.dhis2/org.dhis2.usescases.login.LoginActivity \
--es server_url "https://your-dhis2-server.com" \
--es username "your_username" \
--es password "your_password"Via Deep Links:
dhis2://login?server_url=https://your-dhis2-server.com&username=your_username&password=your_password
- Automatic URL decoding for special characters in passwords
- Secure credential handling through DHIS2 SDK
- Support for all password special characters:
! @ # $ % ^ & * ( ) - _ = + [ ] { } ; : ' " , . < > / ? | \ ~
Perfect for:
- Custom launcher applications
- MDM (Mobile Device Management) solutions
- Automated testing and deployment
- Single sign-on (SSO) integrations
Download the latest signed APK from Releases
adb install dhis2-v3.3.1-googlePlay.apkCheck the Wiki for information about how to build the project and its architecture.
# Debug build
./gradlew :app:assembleDhis2Debug
# Release build (requires signing keys)
SIGNING_KEYSTORE_PATH="path/to/keystore.jks" \
SIGNING_KEY_ALIAS="your_alias" \
SIGNING_KEY_PASSWORD="your_key_password" \
SIGNING_STORE_PASSWORD="your_store_password" \
./gradlew :app:assembleDhis2PlayServicesReleaseval intent = Intent().apply {
component = ComponentName("com.dhis2", "org.dhis2.usescases.login.LoginActivity")
putExtra("server_url", "https://play.dhis2.org/demo")
putExtra("username", "admin")
putExtra("password", "district")
}
startActivity(intent)val deepLink = "dhis2://login?server_url=https://play.dhis2.org/demo&username=admin&password=district"
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(deepLink))
startActivity(intent)Passwords with special characters are automatically URL-encoded and decoded:
dhis2://login?server_url=https://server.com&username=user&password=Pass%40word%21123
Decodes to: Pass@word!123
This fork is based on DHIS2 Android Capture App v3.3.1 and includes:
- Latest upstream features and bug fixes
- Custom auto-login modifications
- Enhanced URL parameter handling
- Compose Multiplatform UI compatibility
Contributions are welcome! Please feel free to submit a Pull Request.
Same license as the upstream DHIS2 Android Capture App.
For issues related to the auto-login functionality, please open an issue in this repository.