关于Android群聊的那点事

说到群聊很多人立马会想到.群聊就是我在群聊界面里发送消息,然后群里的所有人都能收到.但是,这个过程我们仔细想想,然后一步一步解剖.

第一步:从群创建开始,群创建需要什么?群主和邀请人来共同组合成一个群.

第二步:创建完群之后,我们要对群进行各种操作.提到操作,不同的人对群操作是不同的,显而易见,群主的权限更大.那么,不同的人都有哪些权限呢?

举个简单的例子:比如群主(1.群主可以邀请好友加入自己创建的群.反之,群主可以剔除某些人 2.群主可以修改群的一些基本信息,如群名称,给指定的人一些权限等 3.可以删除或者退出该群等等)

以上对群组做了一些简单的分析.主要是最近在做群聊这一块,很是费劲,工作量极大,累觉无爱!刚做到消息的处理这一块:

比如消息发送和接收,直接代码:

btn_chat_send = (Button) view.findViewById(R.id.chat_send);   btn_chat_send.setOnClickListener(new OnClickListener() {

@Override    public void onClick(View v) {

switch (state) {     case MSG_DO_ChangeToButton:

if (et_chat_editmessage.getText().length() > 0) {

chatmsg = new ChatAllMessage();

chatmsg.setContent(et_chat_editmessage.getText() .toString());

chatmsg.setDirection(ChatAllMessage.MESSAGE_RIGHT);

chatmsg.setUsername(new String(

mContext.mLoginPersonInfo.Name));

chatmsg.setTime(UrlUtils.getTime());

chatmsg.setImg(mContext.mSelectedPersonInfo.rowid);

byte[] by = et_chat_editmessage.getText().toString().getBytes();

// 单人聊天 //

if (type == 0) {        mContext.m_ClassSync.SendChatMsg((ID - 48), by, by.length, 0); //

}else if(type==1){ //

mContext.m_ClassSync.SendGroupChatMessage(mContext.mGroupInfoList.get(position).getRowid(), (ID - 48), by, by.length); //

}

list.add(chatmsg);

mAdapter.notifyDataSetChanged();

chat_listview.setSelection(mAdapter.getCount() - 1);

et_chat_editmessage.setText("");      }

break;

case MSG_DO_ChangeToAdd:

Intent intent=new Intent();

intent.setClass(mContext, FileActivity.class);

mContext.startActivity(intent);      break;

}

}

});

这是消息发送的主要代码 下面接收部分的代码,比较简洁:

mContext.sendMessage = new SendMessage() {

@Override    public void send(ChatAllMessage msg) {

System.out.println("direction:" + msg.getDirection());

msg.setUsername(username);

msg.setImg(img);

list.add(msg);

mHandler.sendEmptyMessage(MSG_Chat_Message_Left);

}

};

chat_listview.setAdapter(mAdapter);

chat_listview.setSelection(mAdapter.getCount() - 1);

接收消息就是用借口回调来做的.

做出来的效果主要就是当EditText输入框里面的消息为空时,按钮为底部弹出窗体按钮 当输入框内有文字或者其他字符时(获取的输入框的内容的长度大于0时)

按钮变为发送按钮,然后点击发送消息.效果还不错.

各位博友们,欢迎积极参与学习和讨论中来,康莽北鼻!

时间: 2024-08-01 17:05:51

关于Android群聊的那点事的相关文章

android 开发,视频群聊引发短信异常

我正在开发一个收到信息后发送一条短信进行回复的程序(自动回复),当我的手机启动群聊程序,我的程序并没有成功的发送消息,于是我采用了如下的代码解决这个问题. <intent-filter android:priority="500"> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter> 在信息发送后,我专门记录了SMS日志

基于Kurento的WebRTC移动视频群聊技术方案

说在前面的话:视频实时群聊天有三种架构: Mesh架构:终端之间互相连接,没有中心服务器,产生的问题,每个终端都要连接n-1个终端,每个终端的编码和网络压力都很大.群聊人数N不可能太大. Router架构:终端之间引入中心服务器,学名MCU(Multi Point Control Unit),每个终端的视频流都发布到MCU服务器上,然后服务器负责编码发布多视频流的工作,减轻客户端的压力. Mix架构:在Router架构基础上,多个视频流在服务器端被合为一个视频流,减轻网络压力. 下面讲我们的选择

IM群聊消息的已读回执功能该怎么实现?

本文引用了架构师之路公众号作者沈剑的文章,内容有改动,感谢原作者. 1.前言 我们平时在使用即时通讯应用时候,每当发出一条聊天消息,都希望对方尽快看到,并尽快回复,但对方到底有没有真的看到?我却并不知道. 一个残酷的现实是,很多时候对方其实是早就已经看到了这条消息,但出出种种原因(大家都懂的),通常都是默默返回--假装没看见. 像微信这样的熟人社交工具,在产品的设计理念上,为了保持使用者的隐私性,在线状态.已读回执等涉及隐私的功能,都没有提供.但很多时候,尤其商务.办公场合下,特别需要一种强反馈

Java套接字编程实现群聊与私聊[原理版]

简介 运用Java套接字我们几乎可以完成一个网络聊天软件的小产品,本文不涉及UI部分,仅对原理部分用代码演示一下.一个可以多人聊天的小功能,在Linux系统上用telnet亲测可用. 服务器代码 package demo0811.demo3; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.

基于itchat的微信群聊小助手基础开发(一)

前段时间由于要管理微信群,基于itchat开发了一个简单的微信机器人 主要功能有: 图灵机器人功能 群聊昵称格式修改提示 消息防撤回功能 斗图功能 要开发一个基于itchat的最基本的聊天机器人,在github上作者已经给出基本的操作,本博文只对附加的功能进行说明总结. 确保已经了解itchat的基本操作,先对功能1和功能2进行说明: 1.图灵机器人功能 该功能也是最基础的功能之一,itchat的基础案例也有相关例子. 图灵机器人简单而言就是以一定的规则给图灵的服务器发送数据包,图灵的服务器会以

实现了私聊和群聊功能的聊天工具

在前面的博客(简单的C/S聊天室)中,我们已经提到了,采用的是多线程的方法.服务器端主线程负责不断的侦听端口,子线程负责接收和发送消息.客户端主线程需要接收键盘消息,将其发送到服务器端,子线程需要接收服务器端发过来的消息.在这个简易的C/S聊天室的实现中,仅仅实现了群聊的功能,没有实现私聊.那么,本文就讲实现私聊和群聊. 首先我们想到的是,消息发过来,我怎么知道是公聊消息还是私聊消息呢.所以,这里需要对消息进行处理,比如说在消息前后都加上一些特殊的字符,我们称为协议字符.为此,我们可以定义一个接

如何解决群聊(MUC)聊天室重复存储、接收自己发送的消息的问题

CHENYILONG Blog 如何#解决方案#群聊(MUC)聊天室重复存储.接收自己发送的消息 编号 项目 描述 1 问题描述 单聊没问题,群聊会出现自动回复的问题 数据库中存储的数据出现的问题 界面上出现的问题:类似自动回复.回音壁一样一模一样地回答.  2 问题产生的原因 3 群聊基本的原理示意图 聊天内容的显示是经由从数据库进行的读取排序, 4 #解决方案# 拦截阻挡红色区域的执行  5 失败的尝试:尝试但是没有效果的方法 // AppDelegate.m中#pragma 接收消息代理监

Lync Server 2010部署群聊服务器

最近有网友问到Lync Server 2010部署群聊服务器,在此把部署文档发出来供参考. 下载链接:http://down.51cto.com/data/2256828

Java--&gt;实现群聊功能(C/S模式--TCP协议)

--> Java 对TCP协议的支持: --> java.net包中定义了两个类ServerSocket 和Socket ,分别用来实现双向连接的server 端和client 端. --> Client 类定义客户端 package com.dragon.java.tcpchat; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; /** * 客户端 * *