当前位置:主页 > 查看内容

即时通信 IM 初始化与登录(Android) - SDK 文档

发布时间:2021-10-17 00:00| 位朋友查看

简介:初始化 类 V2TIMManager 是 IM SDK 主核心类,负责 IM SDK 的初始化、登录、消息收发,建群退群等功能,是 IM SDK 的入口类。调用 initSDK 接口即可完成初始化: // 1. 从 IM 控制台获取应用 SDKAppID,详情请参考 SDKAppID。 // 2. 初始化 config 对象 V2TI……

初始化

类 V2TIMManager 是 IM SDK 主核心类,负责 IM SDK 的初始化、登录、消息收发,建群退群等功能,是 IM SDK 的入口类。调用 initSDK 接口即可完成初始化:

// 1. 从 IM 控制台获取应用 SDKAppID,详情请参考 SDKAppID。
// 2. 初始化 config 对象
V2TIMSDKConfig config = new V2TIMSDKConfig();
// 3. 指定 log 输出级别,详情请参考 SDKConfig。
config.setLogLevel(V2TIMSDKConfig.V2TIM_LOG_INFO);
// 4. 初始化 SDK 并设置 V2TIMSDKListener 的监听对象。
// initSDK 后 SDK 会自动连接网络,网络连接状态可以在 V2TIMSDKListener 回调里面监听。
V2TIMManager.getInstance().initSDK(context, sdkAppID, sdkConfig, new V2TIMSDKListener() {
    // 5. 监听 V2TIMSDKListener 回调
    @Override
    public void onConnecting() {
        // 正在连接到腾讯云服务器
    }
    @Override
    public void onConnectSuccess() {
        // 已经成功连接到腾讯云服务器
    }
    @Override
    public void onConnectFailed(int code, String error) {
        // 连接腾讯云服务器失败
    }
});

初始化接口 initSDK(SDKAppID, SDKConfig, listener) 包含三个必填的参数,分别是 SDKAppID、SDKConfig 和事件监听器。

SDKAppID

SDKAppID 即应用 ID,它是腾讯云 IM 服务用于区分客户帐号的唯一标识。每一个独立的 App 都建议申请一个新的 SDKAppID,不同 SDKAppID 之间的消息天然隔离,不能互通。
您可以在 即时通信 IM 控制台 查看所有的 SDKAppID,单击【添加新应用】即可创建新的 SDKAppID。

SDKConfig

参数 V2TIMSDKConfig 用于对 SDK 进行初始化配置,常用于设置日志级别,即 setLogLevel 接口,日志级别如下表所示:

日志级别 LOG 输出量
V2TIM_LOG_NONE 不输出任何 log
V2TIM_LOG_DEBUG 输出 DEBUG,INFO,WARNING,ERROR 级别的 log
V2TIM_LOG_INFO 输出 INFO,WARNING,ERROR 级别的 log
V2TIM_LOG_WARN 输出 WARNING,ERROR 级别的 log
V2TIM_LOG_ERROR 输出 ERROR 级别的 log
  • IM SDK 的日志在4.8.50版本之前默认存储于 /sdcard/tencenet/imsdklogs/应用包名 目录下,4.8.50及之后的版本存储于 /sdcard/Android/data/包名/files/log/tencent/imsdk 目录下。
  • 从 V4.7.1 开始,IM SDK 的日志开始采用微信团队的 xlog 模块进行输出,xlog 日志默认是压缩的,需要使用 Python 脚本进行解压。
    • 获取解压脚本:若使用 Python 2.7,则单击 Decode Log 27 获取解压脚本;若使用 Python 3.0,则单击 Decode Log 30 获取解压脚本。
    • 在 Windows 或者 Mac 控制台输入如下命令即可对 log 文件进行解压,解压后的文件以 xlog.log 结尾,可以直接使用文本编辑器打开。
      python decode_mars_nocrypt_log_file.py imsdk_yyyyMMdd.xlog

事件监听器

V2TIMSDKListener 提供了网络状态以及用户信息变更的监听:

事件回调 事件描述 推荐操作
onConnecting 正在连接到腾讯云服务器 适合在 UI 上展示“正在连接”状态。
onConnectSuccess 已经成功连接到腾讯云服务器 -
onConnectFailed 连接腾讯云服务器失败 可以提示用户当前网络连接不可用。
onKickedOffline 当前用户被踢下线 此时可以 UI 提示用户“您已经在其他端登录了当前账号,是否重新登录?”
onUserSigExpired 登录票据已经过期 请使用新签发的 UserSig 进行登录。
onSelfInfoUpdated 当前用户的资料发生了更新 可以在 UI 上更新自己的头像和昵称。
注意:

若收到 onUserSigExpired 回调,说明您登录用的 UserSig 票据已经过期,请更新后重新登录。如果继续使用过期的 UserSig,会导致 SDK 登录死循环。

登录

调用 V2TIMManager 的 login(userID, userSig) 函数可以进行登录,只有在 SDK 登录成功后,才能使用 IM SDK 的各项能力。

  • UserID: 建议只包含大小写英文字母(a-z、A-Z)、数字(0-9)、下划线(_)和连词符(-),长度最大不超过32字节。
  • UserSig:IM SDK 登录票据,由您的业务服务器进行计算以保证安全,计算方法请参考 UserSig 后台 API。
    注意:

    调用 IM SDK Login 成功登录后,将会开始计算 DAU,请根据业务场景合理使用 IM SDK Login 操作,避免出现 DAU 过高的情况。

    登录时机

    以下场景需调用登录:
  • App 启动后首次使用 IM SDK 的能力时。
  • IM SDK 抛出 onUserSigExpired 回调,即登录票据已过期时,需要使用新的 UserSig 进行登录。
  • IM SDK 抛出 onKickOffline 回调,即当前用户被踢下线时,可以通过 UI 提示用户“您已经在其他端登录了当前账号,是否重新登录?” 如果用户选择“是”,就可以进行重新登录。

以下场景无需调用登录:

  • 用户的网络断开并重新连接后,不需要调用 login 函数,SDK 会自动上线。
  • 当一个登录过程在进行时,不需要进行重复登录。

多端登录

同样类型的两台手机不能同时登录一个帐号,例如两台苹果手机不能同时登录一个帐号。但是一台安卓手机和一台苹果手机会被认为是两端,可以同时登录。多端登录相关配置请参考 登录设置。

登出

登出操作相对简单,使用 logout 函数即可。


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:饼图 - 日志服务 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐