Android SDK
Receive decision requests in your Android app
Installation
dependencies {
implementation("network.noxy:android-sdk:2.1.0")
}
Quick Start
import network.noxy.sdk.*
import network.noxy.sdk.identity.*
import network.noxy.sdk.network.NoxyDecisionChoice
val identity = NoxyIdentity.Email(email = "you@example.com")
// Or wallet: NoxyIdentity.Eoa(NoxyEoaWalletIdentity(address = "0x...", signer = { ... }))
// Or phone: NoxyIdentity.Phone(phone = "+15551234567")
// Or user_id: NoxyIdentity.UserId(userId = "internal-user-abc123")
val client = createNoxyClient(
context = context,
identity = identity,
network = NoxyNetworkOptions(
appId = "your-app-id",
relayUrl = "https://relay.noxy.network",
appSigningSecret = "your-app-signing-secret",
)
)
lifecycleScope.launch {
client.initialize()
}
lifecycleScope.launch {
client.on { relayMessageId, decision ->
val title = decision["title"] as? String
val summary = decision["summary"] as? String
val decisionId = NoxyClient.resolveDecisionId(decision, relayMessageId)
?: return@on
pendingDecisionId = decisionId
// Show UI (e.g. dialog or full-screen Activity)
}
}
var pendingDecisionId: String? = null
fun onApproveOrRejectClick(approve: Boolean) {
lifecycleScope.launch {
val id = pendingDecisionId ?: return@launch
client.sendDecisionOutcome(
id,
if (approve) NoxyDecisionChoice.Approve else NoxyDecisionChoice.Reject
)
}
}
lifecycleScope.launch {
client.close()
}