Giter Club home page Giter Club logo

jchat-android's Introduction

JChat Android

简介

JChat 是基于 JMessage SDK 带有完整 UI 界面的即时通讯应用。 演示即时通讯功能,包括:

  • 单聊、群聊、会话列表、好友、通讯录;
  • 支持发送文本、图片、语音、表情、位置、小视频;
  • 提供用户管理、群组管理、黑名单、免打扰、消息漫游等功能;

JChat 同时具备好友模式和无好友模式:

  • 无好友模式:无需将对方加为好友,通过搜索对方的用户名可直接发起聊天。
  • 好友模式:可申请将对方加为好友,对方会收到好友验证,验证通过则互为好友关系。

目前已覆盖 Android 、 iOSWebWindows平台,开发者可参照 JChat 快速打造自己的 APP,提高开发效率。

  • 更换 AppKey
    • 在 AndroidManifest.xml 文件中把 JChat 的 AppKey 替换成自己项目的 AppKey
  • 更换包名
    • 在 build.gradle 把 defaultConfig 节点下的 applicationId 替换成自己项目的包名

jiguang
jiguang

应用截图

jiguang

搭建环境

  • 如需发送地理位置功能,需要在 AndroidManifest.xml 中配置一下百度地图的 API AccessKey:
<meta-data android:name="com.baidu.lbsapi.API_KEY"
            android:value="UAkQeBK84ioVGzYgA1rSWYfuD4xYtpmV"/> // 将这个 value 替换成自己的

JChat 的工程结构

  • JChat 的架构模型参考了 Android Passive MVC 架构(但是去掉了 Listener 模块),有兴趣的可以参考这里以及这篇文章《Android Passive MVC 架构》

    • Application —— 主要作用是 jmessage-sdk 的初始化以及 Notification 的相关设置;

    • activity 包 —— JChat 的 Activity 的集合,主要负责绑定 Controller 和 View,以及界面的跳转;

    • controller 包 —— 主要负责事件的点击、数据处理等,是 Activity 和 View 的中间层;

    • view 包 —— 主要负责界面的展示、控件的初始化、点击事件的绑定等;

    • adapter 包 —— 主要负责 ListView 或 GridView 的数据处理;

    • tools 包 —— 工具类的集合。

JChat项目中用到的部分开源项目

  • ActiveAndroid —— 对象关系映射(ORM)操作数据库
  • EventBus —— 在组件之间传递消息
  • Picasso —— 加载、显示、缓存图片
  • 百度地图

特别说明

  • JChat Eclipse版本需要开发者自己切换到eclipse-jchat分支.注:Eclipse版本以后不再维护更新.
  • JChat 是一个单独的完整项目,不能作为module添加到其他项目中

相关文档

jchat-android's People

Contributors

gitter-badger avatar jinfengf avatar kenchoi1992 avatar xiongtiancheng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jchat-android's Issues

照相录制小视频 报错getParameters failed (empty parameters)

将targetSdkVersion 改为28 照相录制小视频 Process: com.szyl.app.forlove, PID: 28833
java.lang.RuntimeException: getParameters failed (empty parameters)
at android.hardware.Camera.native_getParameters(Native Method)
at android.hardware.Camera.getParameters(Camera.java:2445)
at jiguang.chat.utils.photovideo.takevideo.camera.CameraManager.setCameraType(CameraManager.java:422)
at jiguang.chat.utils.photovideo.takevideo.CameraActivity$1.onLongClick(CameraActivity.java:174)
at jiguang.chat.utils.photovideo.takevideo.camera.CameraProgressBar$1.onLongPress(CameraProgressBar.java:160)

关于单点登录

单点登录 被踢下线
public void onEventMainThread(LoginStateChangeEvent event){}这个的发送源在哪里?

Android2.3及以下手机发送文件失败问题解决方法

Android2.3及以下手机发送文件的时候,选择完之后点发送,会返回聊天界面,但聊天界面并没有显示刚才发送的文件,返回后重新进入聊天界面显示刚才的文件发送失败。 解决办法:将配置文件里面SendFileActivity的启动方式android:launchMode="singleInstance"去掉即可。

SwipeBackLayout类,在回退Activity的时候,背景变成黑色

SwipeBackLayout 这个类在QMUI已经更新啦。我安卓的还是用的老代码。
edge_size边界内滑动 背景Activity是纯黑色,而不是代码的:
mActivity.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
只有当被滑动的Activity完全finish 才会显示目标Activity布局。
没办法 只有把 edge_size 改成1dp。 就是这样可惜了工程师的用心
image

NoClassDefFoundError

完全按照文档方式导入的,导入android studio,运行后,打开应用 直接就崩溃,日志是 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/blueware/agent/android/instrumentation/SQLiteInstrumentation;
at io.jchat.android.application.JChatDemoApplication.onCreate(JChatDemoApplication.java:62)

AndroidStudio3.0Beta6上无法通过jcenter集成JMessage

Android上,通过jcenter 自动集成JMessage的时候

在AndroidStudio3.0Beta6(android-studio-ide-171.4333198-windows.zip)上,
jmessage-android_v2.2.1.jar包无法集成进来,无法找到JMessageClient

在AndroidStudio2.3.3上没问题。

java.lang.RuntimeException: autoFocus failed

at com.chat.utils.photovideo.camera.CameraManager.handleFocusMetering(CameraManager.java:473)
at com.chat.activity.CameraActivity$2.handleFocus(CameraActivity.java:223)
at com.chat.utils.photovideo.camera.CameraView.onTouchEvent(CameraView.java:99)

华为VTR-AL00(Android 8.0.0)报此错误。

java.lang.RuntimeException: autoFocus failed

照此Demo集成极光IM,调用相机时报错:
at com.chat.utils.photovideo.camera.CameraManager.handleFocusMetering(CameraManager.java:473)
at com.chat.activity.CameraActivity$2.handleFocus(CameraActivity.java:223)
at com.chat.utils.photovideo.camera.CameraView.onTouchEvent(CameraView.java:99)
对应此Demo的package jiguang.chat.utils.photovideo.takevideo.camera.CameraManager类,手机型号为VTR-AL00.

消息列表头像错乱问题

当消息列表中有未设置头像的用户,列表中头像图片会发生错乱问题。请问,这个可以解决吗?

华为p20pro 8.1系统遇到一个bug

搜索添加联系人成功之后,在联系人列表中不会显示刚添加的联系人。 退出软件重启也不会显示添加的联系人, 但是 在小米5x 7.0的系统上面是没有问题的 。

混淆类的建议

cn.jmessage.biz.g.c 这个类是Conversation的实现类 获取会话列表的时候会返回这个cn.jmessage.biz.g.c
建议这种需要用到的类取消混淆吧

无法预览文件

请问一下发文件成功之后为什么不能预览啊?一直报无法打开该类型的文件

发送文件报错

给对方发送文件后,不显示发送的文件。返回在进入会显示。而且再返回进入会一直崩溃。希望优化一下。

使用demo项目遇到的问题

1.在Android Studio 3.1出现很多兼容问题,使用Android Studio 2.3.3可以减少该类问题;
2.编译时,MessageAlreadyReadFragment类和MessageNotReadFragment类的构造函数报错,添加@SuppressLint({"NewApi", "ValidFragment"})跳过了lint检查即可;
3.build.gradle的签名配置signingConfigs需要改为自己的keystore信息或者注释该配置即可解决签名报错。
以上做个记录,也希望可以帮到后来者。

android无法打开ios发送的小视频

android客户端发送小视频给ios客户端,ios客户端可以正常打开,
ios客户端发送小视频给android客户端,android客户端无法打开

开发者建议

希望能及时维护这个项目,因为该项目依赖了其他人的表情库,但是其他人的表情库已经更新、升级了,但是该项目还没有及时更新相应的依赖库版本,有些已经废弃的类依然存在,导致项目很多报错的地方

新用户注册第一次登录异常

用户注册之后进行登录操作,代码执行到这里报异常,好像是提示数据表报空,参照demo这样的逻辑处理的。为什么会报空呢?
JMessageClient.register(Jchat_Uid, Jchat_Pwd, new BasicCallback() {
@OverRide
public void gotResult(final int status, final String desc) {
if (status == 0) {//注册成功
JMessageClient.login(Jchat_Uid, Jchat_Pwd, new BasicCallback() {
@OverRide
public void gotResult(final int status, String desc) {
if (status == 0) {//注册完成,重新登录成功
String username = JMessageClient.getMyInfo().getUserName();
String appKey = JMessageClient.getMyInfo().getAppKey();
UserEntry user = UserEntry.getUser(username, appKey);
if (null == user) {
user = new UserEntry(username, appKey);
user.save();
}
...

keystore错误

编译报错啊,老铁

Error:Execution failed for task ':JChat:validateSigningDebug'.

Keystore file D:\AndroidCase\jchat-android-master\JChat\debug.keystore not found for signing config 'debug'.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.