示例代码

创建全局Application

创建全局Application文件,如果目标工程全局Application文件已经存在,则在该文件合适的地方使用EVSdk.init()方法来进行初始化,将上面获取到的APPID,Access Key,Secret Key作为该方法的参数,该方法调用的位置应该是:目标工程用户登录成功后调用全局Application设置用户信息的函数,将用户信息作为EVSdk.init的参数。如下:

    //打开SDK详细日志开关
    EVSdk.enableDebugLog();

    //初始化SDK,传入APPID,Access Key,Secret Key,userdata等参数
    EVSdk.init(app.getApplicationContext(), "APPID", "Access Key", "Secret Key", "userdata");

使用消息系统

可参考demo工程中的com.easyvaas.sdk.demo.MessageActivity类完成一个简单的消息系统示例

  • 在AndroidManifest.xml文件中注册Activity,固定为竖屏

      <activity
          android:name=".MessageActivity"
          android:configChanges="keyboard"
          android:label="@string/title_activity_message"
          android:screenOrientation="portrait"
          android:windowSoftInputMode="adjustPan" >
      </activity>
    
  • 创建消息系统回调

      private MessageCallback mMessageCallback = new MessageCallback() {
          @Override public void onConnected() {
              Log.d(TAG, "连接聊天服务器成功");
          }
    
          @Override public void onNewMessage(String message, String userdata, String userid, String channel) {
              Log.d(TAG, "收到消息:" + message);
          }
    
          @Override public void onHistoryMessage(List<MsgInfoEntity> msgs, int next, int count) {
          //处理历史消息
          }
    
          @Override public void onUserJoin(List<String> users) {
          //处理用户进入消息
          }
    
          @Override public void onUserLeave(List<String> users) {
          //处理用户离开消息
          }
    
          @Override public void onLikeCount(int likeCount) {
              Log.d(TAG, "点赞数更新: " + likeCount);
          }
    
          @Override public void onWatchingCount(int watchingCount) {
              Log.d(TAG, "正在观看人数: " + watchingCount);
          }
    
          @Override public void onWatchedCount(int watchedCount) {
              Log.d(TAG, "已观看人数: " + watchedCount);
          }
    
          @Override public void onError(int errCode) {
              Log.d(TAG, "聊天交互发生错误,错误码: " + errCode);
          }
    
          @Override public void onClose() {
              Log.d(TAG, "连接关闭,上层需要决定是否重连");
          }
      };
    
  • 创建消息系统对象

      mEVMessage = new EVMessage(this);
      mEVMessage.setMessageCallback(mMessageCallback);
    
  • 连接消息系统服务器

      mEVMessage.connect(mChannel);
    

    mChannel:连接消息时需要指定channel字符串,即频道名称,一般指直播间的唯一id,由上层业务决定

  • 发送消息

      //发送评论
      mEVMessage.send(mChannel, comment, userData, Constants.MESSAGE_TYPE_MSG, mSendCallback);
    
  • 点赞

      //增加点赞数,上层可以点一次调用一次,也可以记录用户的点击次数,定时调用该接口,减少接口调用开销
      mEVMessage.addLikeCount(mChannel, 1);
    
  • 获取最近条数历史消息

      //获取最近count条历史消息
      public void getLastHistoryMsgs(String channel, int count, String type)
    
    • channel:聊天频道id,指聊天房间唯一id
    • count:获取历史消息的条数
    • type:历史消息类型,如果想要获取多种类型的历史消息,使用逗号分隔,例如"system,msg,redpack,gift",如果该字符串为空,获取全部类型的历史消息
  • 获取历史消息

      //获取从start开始的count条历史消息
      public void getHistoryMsgs(String channel, int start, int count, String type)
    
    • channel:聊天频道id,指聊天房间唯一id
    • start:历史消息起始点消息id
    • count:获取历史消息的条数
    • type:历史消息类型,如果想要获取多种类型的历史消息,使用逗号分隔,例如"system,msg,redpack,gift",如果该字符串为空,获取全部类型的历史消息
  • 关闭

      mEVMessage.close();  //重要,退出Activity时在OnDestroy函数中调用,否则会重复收到消息
    

results matching ""

    No results matching ""