Psiphon Library for Android enables you to easily embed Psiphon in your Android app. The Psiphon Library for Android is implemented in Go and follows the standard conventions for using a Go library in an Android app.
- Pre-release
Follow Go Android documentation:
- gomobile documentation
- Requires Go 1.5 or later.
- Build command:
gomobile bind -target=android github.com/Psiphon-Labs/psiphon-tunnel-core/AndroidLibrary/psi
- Output:
psi.aar
- Build
psi.aar
from source or use the binary release - Add
psi.aar
to your Android Studio project as described in the gomobile documentation - Example usage in Psibot sample app
See sample API usage in Psibot's PsiphonVpn.java. Uses gobind
conventions for data passing.
- Embed a config file
- Call
Go.init(getApplicationContext());
inApplication.onCreate()
- Extend
Psi.Listener.Stub
to receive messages inMessage(String line)
- Call
Psi.Start(configFile, Psi.Listener)
to start Psiphon. CatchException
to receive errors. - Call
Psi.Stop()
to stop Psiphon. - Sample shows how to monitor messages and detect which proxy ports to use and when the tunnel is active.
NOTE: may add more explicit interface for state change events.
- Only supports one concurrent instance of Psiphon.