设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 8542|回复: 10
打印 上一主题 下一主题

OnAnyChatUserAtRoomMessage这个监听不触发

[复制链接]

10

主题

28

帖子

116

积分

注册会员

Rank: 2

积分
116
跳转到指定楼层
楼主
发表于 2014-9-5 10:16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 androidking 于 2014-9-5 10:17 编辑

OnAnyChatUserAtRoomMessage这个监听不触发,
OnAnyChatOnlineUserMessage,OnAnyChatLoginMessage这些监听都触发。
我在当前界面anychat.Connect,anychat.Login,anychat.EnterRoom,做了这三件事。
login的监听已经返回登陆成功,EnterRoom的监听也返回了0。
当我另外PC端进入这个ROOM时候不会触发有人进退房间的监听是怎么回事,PC端在房间都已经能看到我了。而且我们能互相通信?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

2

主题

79

帖子

612

积分

高级会员

Rank: 4

积分
612
沙发
发表于 2014-9-5 10:28:44 | 只看该作者
您好,只有别人比您后进入房间才会触发这个OnAnyChatUserAtRoomMessage。
回复 支持 反对

使用道具 举报

10

主题

28

帖子

116

积分

注册会员

Rank: 2

积分
116
板凳
 楼主| 发表于 2014-9-5 10:49:09 | 只看该作者
佰锐技术-高萌 发表于 2014-9-5 10:28
您好,只有别人比您后进入房间才会触发这个OnAnyChatUserAtRoomMessage。

我发现我当前界面调用了anychat.EnterRoom 那么这个监听就没法触发,如果调到新的界面在新的界面实现这个监听,那么新的界面就可以触发有人进出入房间的监听。
怎么回事?
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
地板
发表于 2014-9-5 10:53:22 | 只看该作者
androidking 发表于 2014-9-5 10:49
我发现我当前界面调用了anychat.EnterRoom 那么这个监听就没法触发,如果调到新的界面在新的界面实现这个 ...

您好,只要设置当前界面设置了回调接收并没有将监听交给其他activity,后续有人跟您进入相同房间,就会触发OnAnyChatUserAtRoomMessage
回复 支持 反对

使用道具 举报

10

主题

28

帖子

116

积分

注册会员

Rank: 2

积分
116
5#
 楼主| 发表于 2014-9-5 11:10:23 | 只看该作者
anychat.SetBaseEvent(this); 就是设置自己当前界面接受监听嘛,唯独OnAnyChatUserAtRoomMessage接受不了。你们Demo也是先在A界面进入房间,然后跳到B界面接受OnAnyChatUserAtRoomMessage的监听。
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
6#
发表于 2014-9-5 11:19:11 | 只看该作者
androidking 发表于 2014-9-5 11:10
anychat.SetBaseEvent(this); 就是设置自己当前界面接受监听嘛,唯独OnAnyChatUserAtRoomMessage接受不了。 ...

嗯,demo中是“A界面进入房间,然后跳到B界面”这种逻辑,所以的监听在同一个界面接收也是可以的哦。你怎么判断接收不了“OnAnyChatUserAtRoomMessage”的呢?当你进入房间成功后,后面有人进来或者离开,应该都会OnAnyChatUserAtRoomMessage。
回复 支持 反对

使用道具 举报

10

主题

28

帖子

116

积分

注册会员

Rank: 2

积分
116
7#
 楼主| 发表于 2014-9-5 11:29:40 | 只看该作者
廖斌 发表于 2014-9-5 11:19
嗯,demo中是“A界面进入房间,然后跳到B界面”这种逻辑,所以的监听在同一个界面接收也是可以的哦。你怎 ...

我是在安卓端的A界面中connect ,login,EnterRoom做了这三件事. 在A界面重写了所有监听,
然后PC端的WEB进入这个房间,进入房间后能看到我安卓端在房间里面。
按理说PC端是后进入的而且能在房间里面看到安卓端,证明房间是一直的,那么安卓端就应该会触发OnAnyChatUserAtRoomMessage监听。
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
8#
发表于 2014-9-5 11:46:36 | 只看该作者
androidking 发表于 2014-9-5 11:29
我是在安卓端的A界面中connect ,login,EnterRoom做了这三件事. 在A界面重写了所有监听,
然后PC端的WEB ...

是的,这种情况是会触发OnAnyChatUserAtRoomMessage的。您使用的是什么android版本呢?方便的话,可以将你监听事件的A界面代码发过来看下。
回复 支持 反对

使用道具 举报

10

主题

28

帖子

116

积分

注册会员

Rank: 2

积分
116
9#
 楼主| 发表于 2014-9-5 13:45:00 | 只看该作者
  1. package com.dolp.view.room.toAnchat;

  2. import com.bairuitech.anychat.AnyChatBaseEvent;
  3. import com.bairuitech.anychat.AnyChatCoreSDK;
  4. import com.bairuitech.anychat.AnyChatDefine;

  5. import android.R;
  6. import android.app.Activity;
  7. import android.content.Intent;
  8. import android.graphics.Color;
  9. import android.os.Bundle;
  10. import android.text.InputType;
  11. import android.util.DisplayMetrics;
  12. import android.util.Log;
  13. import android.view.Gravity;
  14. import android.view.MotionEvent;
  15. import android.view.View;
  16. import android.view.View.OnClickListener;
  17. import android.view.View.OnTouchListener;
  18. import android.view.ViewGroup.LayoutParams;
  19. import android.view.inputmethod.InputMethodManager;
  20. import android.widget.Button;
  21. import android.widget.CheckBox;
  22. import android.widget.EditText;
  23. import android.widget.ImageView;
  24. import android.widget.LinearLayout;
  25. import android.widget.ProgressBar;
  26. import android.widget.TextView;
  27. import android.widget.Toast;
  28. import android.widget.ImageView.ScaleType;

  29. public class To extends Activity implements AnyChatBaseEvent {
  30.         private LinearLayout fullLayout;
  31.         private LinearLayout mainLayout;
  32.         private LinearLayout progressLayout;
  33.         private Button configBtn;
  34.         private Button loginBtn;
  35.         private CheckBox saveCheckBox;
  36.         private ConfigEntity configEntity;
  37.         private EditText nameEditText;
  38.         private EditText passwordEditText;
  39.         private CheckBox anonymousCheckBox;
  40.         private boolean bNeedRelease = false;

  41.         public AnyChatCoreSDK anychat;
  42.         String roomID;
  43.         String UserName;
  44.         TextView tloading;

  45.         /** Called when the activity is first created. */
  46.         @Override
  47.         public void onCreate(Bundle savedInstanceState) {
  48.                 super.onCreate(savedInstanceState);
  49.                 setContentView(com.dolp.R.layout.room_login);
  50.                 Intent intent = getIntent();
  51.                 configEntity = ConfigService.LoadConfig(this);
  52.                 roomID = intent.getExtras().getString("subId");
  53.                 tloading = (TextView) findViewById(com.dolp.R.id.tloading);
  54.                 Log.e("", "我进入的房间ID是:" + roomID);
  55.                 UserName = intent.getExtras().getString("username");
  56.                 InitialSDK();
  57.                 Login();
  58.         }

  59.         private void InitialSDK() {
  60.                 if (anychat == null) {
  61.                         anychat = new AnyChatCoreSDK();
  62.                         anychat.SetBaseEvent(this);
  63.                         anychat.mSensorHelper.InitSensor(this);
  64.                         if (configEntity.useARMv6Lib != 0)
  65.                         AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_CORESDK_USEARMV6LIB, 1);
  66.                         anychat.InitSDK(android.os.Build.VERSION.SDK_INT, 0);
  67.                         bNeedRelease = true;
  68.                 }
  69.         }


  70.         //登陆连接两项操作
  71.         private void Login() {
  72.                 configEntity.IsSaveNameAndPw = false;
  73.                 ConfigService.SaveConfig(this, configEntity);
  74.                 this.anychat.Connect("218.244.135.56", 8906);
  75.                 this.anychat.Login(UserName, "");
  76.         }

  77.         protected void onDestroy() {
  78.                 myThread();
  79.                 super.onDestroy();
  80.         }

  81.         protected void onResume() {
  82.                 configEntity = ConfigService.LoadConfig(this);
  83.                 anychat.SetBaseEvent(this);
  84.                 super.onResume();
  85.         }
  86.         //线程关闭SDK
  87.         private void myThread() {
  88.                 // TODO Auto-generated method stub
  89.                 Runnable runnable = new Runnable() {

  90.                         @Override
  91.                         public void run() {
  92.                                 // TODO Auto-generated method stub

  93.                                 if (bNeedRelease) {
  94.                                         anychat.Release(); // 关闭SDK
  95.                                 }
  96.                         }
  97.                 };
  98.                 Thread thread = new Thread(runnable);
  99.                 thread.start();
  100.         }

  101.         @Override
  102.         public void OnAnyChatConnectMessage(boolean bSuccess) {
  103.                 if (!bSuccess) {
  104.                         loginBtn.setClickable(true);
  105.                         Toast.makeText(this, "连接服务器失败,自动重连,请稍后...", Toast.LENGTH_SHORT)
  106.                                         .show();
  107.                         progressLayout.setVisibility(View.GONE);
  108.                 }
  109.         }

  110.         @Override
  111.         public void OnAnyChatEnterRoomMessage(int dwRoomId, int dwErrorCode) {
  112.                 // TODO Auto-generated method stub
  113.                 Log.e("", "进入房间事件"+dwRoomId+"||"+dwErrorCode);
  114.                
  115.         }

  116.         @Override
  117.         public void OnAnyChatLinkCloseMessage(int dwErrorCode) {
  118.                 Toast.makeText(this, "连接关闭,error:" + dwErrorCode, Toast.LENGTH_SHORT).show();
  119.         }

  120.         @Override
  121.         public void OnAnyChatLoginMessage(int dwUserId, int dwErrorCode) {
  122.                 //当登陆成功后进入房间
  123.                 if (dwErrorCode == 0) {
  124.                         Toast.makeText(this, "登录成功!" + roomID, 4000).show();
  125.                         bNeedRelease = false;
  126.                         anychat.EnterRoom(Integer.parseInt(roomID), "");
  127.                 } else {
  128.                         Toast.makeText(this, "登录失败,错误代码:" + dwErrorCode, Toast.LENGTH_SHORT).show();
  129.                 }
  130.         }

  131.         @Override
  132.         public void OnAnyChatOnlineUserMessage(int dwUserNum, int dwRoomId) {
  133.                 Log.e("", "当前房间的在线人数:" + dwUserNum);
  134.                 int[] dmc = anychat.GetOnlineUser();
  135.                 Log.e("", "多少个用户" + dmc.length);
  136.                 if (dwUserNum <= 1) {
  137.                         tloading.setVisibility(View.VISIBLE);
  138.                 }
  139.                 for (int i : dmc) {
  140.                         Log.e("", "用户:" + i);
  141.                 }
  142.                 /*
  143.                 if(dwUserNum>1){
  144.                 Intent intent = new Intent();
  145.                 intent.putExtra("UserID", dmc[0] + "");
  146.                 intent.setClass(To.this, VideoActivity.class);
  147.                 startActivity(intent);
  148.                 }
  149.                 */
  150.         }

  151.         @Override
  152.         public void OnAnyChatUserAtRoomMessage(int dwUserId, boolean bEnter) {
  153.                 Log.e("", "有人进出入房间");
  154.                 if (bEnter) {
  155.                         //如果有人进入了就跳转到下一个界面
  156.                         tloading.setVisibility(View.INVISIBLE);
  157.                         Intent intent = new Intent();
  158.                         intent.putExtra("UserID", dwUserId + "");
  159.                         intent.setClass(To.this, VideoActivity.class);
  160.                         startActivity(intent);
  161.                 }
  162.         }
  163. }
复制代码
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
10#
发表于 2014-9-5 13:57:23 | 只看该作者

代码是没有问题的。OnAnyChatUserAtRoomMessage一直不触发吗,断点看看?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-11-24 01:42 , Processed in 0.153031 second(s), 21 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表