Repository navigation
LinkTrail Android SDK 0.1.0
Install it with:
implementation("io.linktrail:sdk:0.1.0")⚠️ Breaking change
handleDeepLinknow claims only LinkTrail links:*.linktrail.ioplus the hosts you list inlinkDomains. If you use a custom link domain, add it tolinkDomains, or those links won't be handled.- URLs that aren't LinkTrail links (your own
myapp://, OAuth callbacks,mailto:) now returnfalse, and the SDK makes no network call for them.
- URLs that aren't LinkTrail links (your own
Consent and privacy
- Later consent: granting consent after a denial now routes the deferred link.
- Denied installs: they send no device id and no idempotency key.
- An explicit denial always wins:
setConsent(false)takes effect even withrequireConsent = false. - Events in flight: an event already being sent when consent is denied is never sent.
- SDK state stays on the device: it's excluded from backup and restore, so a restored or new phone counts as a new install.
Reliability
- Deferred link delivered at least once: it's saved until
onLinkreceives it, even ifonLinkis registered late. It expires after 7 days. - Event queue:
- only retryable failures are queued;
- only one flush runs at a time;
- a corrupt entry no longer wipes the queue;
- cancellation is handled correctly.
configure: it's a safe singleton, and invalid options are clamped with a warning instead of throwing.- Device id: it's created once, even when several first calls race.
Diagnostics
- SDK header: every request sends
X-LinkTrail-SDK: android/0.1.0. - Logs: log lines are unified with iOS (see
LOGS.md). - Debug-only overrides:
LINKTRAIL_BASE(backend URL) anddebug.linktrail.referrer(install referrer) work in debuggable apps only.
Full Changelog: v0.0.5...v0.1.0