TUIKit 并成功发送第一条消息。SDKAppID 及 SDKSecretKey 并直接跳转到下一节。


SDKAppID、SDKSecretKey,后续运行 Demo 时需要用到这两个信息。



LoginStore 的 login API 登录用户账号,分两种情况:// 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 success}override fun onFailure(code: Int, desc: String) {// Login failed}})
sdkAppID,上文获取的 sdkAppID。senderUserID,发送消息者的 userID(也就是上文的 user1)。senderUserSig,上文获取到的,发送消息者的 userSig。receiverUserID,接受消息者的 userID。import android.os.Bundleimport android.view.ViewGroupimport android.widget.FrameLayoutimport androidx.appcompat.app.AppCompatActivityimport androidx.core.view.ViewCompatimport androidx.core.view.WindowCompatimport androidx.core.view.WindowInsetsCompatimport androidx.core.view.updatePaddingimport io.trtc.tuikit.atomicxcore.api.CompletionHandlerimport io.trtc.tuikit.atomicxcore.api.login.LoginStoreimport io.trtc.tuikit.chat.uikit.pages.ChatPageViewclass ChatPageDemoActivity : AppCompatActivity() {private val sdkAppID: Int = 0 // TODOprivate val senderUserID = "" // TODOprivate val senderUserSig = "" // TODOprivate val receiverUserID = "" // TODOprivate val conversationID: String get() = "c2c_${receiverUserID}"private var chatPageView: ChatPageView? = nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)WindowCompat.setDecorFitsSystemWindows(window, false)LoginStore.shared.login(this, sdkAppID, senderUserID, senderUserSig, object : CompletionHandler {override fun onSuccess() = showChatPage()override fun onFailure(code: Int, desc: String) {}})}private fun showChatPage() {val container = FrameLayout(this).apply {layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)}ViewCompat.setOnApplyWindowInsetsListener(container) { view, insets ->val bars = insets.getInsets(WindowInsetsCompat.Type.systemBars())view.updatePadding(top = bars.top, bottom = bars.bottom)insets}setContentView(container)val page = ChatPageView(this)container.addView(page)page.setup(conversationID = conversationID,onUserClick = { /* Handle user avatar click */ })chatPageView = page}override fun onDestroy() {chatPageView?.release()super.onDestroy()}}

文档反馈