SDKAppID and SDKSecretKey, then proceed to the next section.


SDKAppID and SDKSecretKey in the console overview panel. You will need both to run the Demo.
SDKSecretKey to protect your Application from unauthorized access.


login API from LoginStore. There are two scenarios:// API location: io.trtc.tuikit.atomicxcore.api.login.LoginStoreLoginStore.shared.login(activity, // Activity contextsdkAppID, // Int, SDK application IDuserID, // String, User IDuserSig, // String, User signatureobject : CompletionHandler {override fun onSuccess() {// Login successful}override fun onFailure(code: Int, desc: String) {// Login failed}})
sdkAppID: The SDKAppID obtained earlier.senderUserID: The userID of the sender (user1).senderUserSig: The UserSig generated for the sender.receiverUserID: The userID of the receiver.// ChatDemoActivity.ktimport android.os.Bundleimport androidx.activity.compose.setContentimport androidx.appcompat.app.AppCompatActivityimport androidx.compose.foundation.backgroundimport androidx.compose.foundation.layout.Boximport androidx.compose.foundation.layout.Columnimport androidx.compose.foundation.layout.fillMaxSizeimport androidx.compose.foundation.layout.fillMaxWidthimport androidx.compose.foundation.layout.navigationBarsPaddingimport androidx.compose.foundation.layout.paddingimport androidx.compose.foundation.layout.statusBarsPaddingimport androidx.compose.material3.CircularProgressIndicatorimport androidx.compose.material3.Textimport androidx.compose.runtime.getValueimport androidx.compose.runtime.mutableStateOfimport androidx.compose.runtime.rememberimport androidx.compose.runtime.setValueimport androidx.compose.ui.Alignmentimport androidx.compose.ui.Modifierimport io.trtc.tuikit.atomicx.basecomponent.theme.LocalThemeimport io.trtc.tuikit.atomicx.messageinput.ui.MessageInputimport io.trtc.tuikit.atomicx.messagelist.ui.MessageListimport io.trtc.tuikit.atomicxcore.api.CompletionHandlerimport io.trtc.tuikit.atomicxcore.api.login.LoginStoreclass ChatDemoActivity : AppCompatActivity() {private val sdkAppID: Int = 1234567890 // TODO: Enter your SDKAppID here.private val senderUserID = "" // TODO: Enter your userID here (sender).private val senderUserSig = "" // TODO: Enter your generated UserSig here.private val receiverUserID = "" // TODO: Enter the receiver's userID here.// C2C conversationID: "c2c_${userID}", Group conversationID: "group_${groupID}"private val conversationID: String get() = "c2c_${receiverUserID}"override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)login()}private fun login() {LoginStore.shared.login(this, sdkAppID, senderUserID, senderUserSig, object : CompletionHandler {override fun onSuccess() {showChatPage()}override fun onFailure(code: Int, desc: String) {// Handle login failure}})}private fun showChatPage() {setContent {val colors = LocalTheme.current.colorsColumn(modifier = Modifier.fillMaxSize().background(color = colors.bgColorOperate).statusBarsPadding()) {// MessageListBox(modifier = Modifier.weight(1f)) {MessageList(conversationID = conversationID,onUserClick = { userID ->// Handle user avatar click})}// MessageInputMessageInput(conversationID = conversationID,modifier = Modifier.navigationBarsPadding())}}}}

Was this page helpful?
You can also Contact sales or Submit a Ticket for help.
Help us improve! Rate your documentation experience in 5 mins.
Feedback