旭丹入职测试:聊天demo
需求概述:
- 整合环信、Jpush,实现聊天功能,推送功能、附近的人
Jpush新总结
- 1.包名用manifest中定义的package,全体项目顶级包名,不要使用某个文件夹下的包名。出错将导致无法获取jpush对应device_id;
- 2.ExampleApplication中的初始化操作拷贝到新项目application中,特殊界面处理在MyReceiver中处理;
- jpush信息:
- 包名 com.hyphenate.chatuidemo
- AppKey 5ca73b070ee81650790374d2
- Master Secret 1bb615931d54f2394a170bd3
环信与开发工具intelliJ使用总结
- 错误 error:android dex .... multiple dex files defind Lcom/baidu/a/a/a/;为重复加包,因为环信依赖easyui项目,部分包为公用,有时出现环信无法编译,有时出现easyui无法编译;解决方法:将所有的包拷贝到环信demo中,然后make easyui ,然后编译运行环信demo不会报错;
- 环信大部分功能在easyui中实现,需要改此部分代码;
- 环信项目使用了glide图片库,友盟分析库,百度地理SDK,bolts异步任务有序类,使用Parse作为数据传输和解析工具;
parse 是一个比较不错的开源项目,值得深入学习;
完成上述功能做了一下几点:
- 1.在登录注册页加入连接本地服务器代码,将用户账号、id等信息保存在服务器,同时开启jpush监听;退出部分停止jpush接收数据
- 2.根据百度地理位置,传输目标当前所在区至本地服务器(非环信服务器),并根据“市”筛选出在某地附近的人,用户可以自行添加;
- 3.聊天发送文本消息后,将聊天记录(from to content)同时发送到本地服务器,进行消息记录;
- 4.登录后发送设备信息到本地服务器,特别是jpush 的device_id,以后可以通过device_id将信息推送给特定设备;
- 注:此处存在隐患(①jpush在网络关闭后无法注销,②注销后如果没有重新登录设备id不变,如果登陆了其他账号,需要清除其他账号存在该设备的id,否则该设备会受到多用户的推送,③设备异常下机,无法清除数据库信息时,注册页开启接受推送服务,将导致未登录用户受到推送给该设备id的信息,即使未登录)
- 5.服务器端做了7个功能:
- 1.用户登录
- 2.用户注册
- 3.用户删除
- 4.接受单个用户设备信息
- 5.保存聊天记录
- 6.搜索附近的人
- 7.上传地理位置