腾讯IM即时通讯(2.4.1)
来源:互联网 发布:苹果实用软件推荐 编辑:程序博客网 时间:2024/05/18 02:40
可以参考另外两篇博客(另外感谢)
http://blog.csdn.net/chenshuaiforwork/article/details/52910974
http://blog.csdn.net/chenshuaiforwork/article/details/52710341
在https://www.qcloud.com/product/im中下载SDK、查看集成文档
ImSDK 支持 JDK 1.6 和 Android SDK version 14 以上系统。
导入jar、so,添加权限、注册IM广播服务
libs/bugly_1.3.0_imsdk_release.jarlibs/imsdk.jarlibs/mobilepb.jarlibs/qalsdk.jarlibs/tls_sdk.jarlibs/wup-1.0.0-SNAPSHOT.jarlibs/soload.jarlibs/armeabi/lib_imcore_jni_gyp.solibs/armeabi/libBugly.solibs/armeabi/libqalcodecwrapper.solibs/armeabi/libqalmsfboot.solibs/armeabi/libwtcrypto.solibs/armeabi-v7a/lib_imcore_jni_gyp.solibs/armeabi-v7a/libBugly.solibs/armeabi-v7a/libqalcodecwrapper.solibs/armeabi-v7a/libqalmsfboot.solibs/armeabi-v7a/libwtcrypto.solibs/arm64-v8a/lib_imcore_jni_gyp.solibs/arm64-v8a/libBugly.solibs/arm64-v8a/libqalcodecwrapper.solibs/arm64-v8a/libqalmsfboot.solibs/arm64-v8a/libwtcrypto.solibs/x86/lib_imcore_jni_gyp.solibs/x86/libBugly.solibs/x86/libqalcodecwrapper.solibs/x86/libqalmsfboot.solibs/x86/libwtcrypto.solibs/x86_64/lib_imcore_jni_gyp.solibs/x86_64/libBugly.solibs/x86_64/libqalcodecwrapper.solibs/x86_64/libqalmsfboot.solibs/x86_64/libwtcrypto.so
bugly_1.3.0_imsdk_release.jarcrash上报jar包, 如不需要可删除,并调用TIMManager中的disableCrashReport进行禁用imsdk.jarIMSDK的jar包mobilepb.jarprotobuffer处理相关jar包qalsdk.jarSDK网络层jar包tls_sdk.jar帐号系统jar包wup-1.0.0-SNAPSHOT.jar无线统一协议jar包soload.jar提高imsdk so库的加载成功率
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!--腾讯IM--> <!-- 消息收发service --> <service android:name="com.tencent.qalsdk.service.QalService" android:exported="false" android:process=":QALSERVICE" /> <!-- 消息收发辅助service --> <service android:name="com.tencent.qalsdk.service.QalAssistService" android:exported="false" android:process=":QALSERVICE" /> <!-- 离线消息广播接收器 --> <receiver android:name="com.tencent.qalsdk.QALBroadcastReceiver" android:exported="false"> <intent-filter> <action android:name="com.tencent.qalsdk.broadcast.qal" /> </intent-filter> </receiver> <!-- 系统消息广播接收器 --> <receiver android:name="com.tencent.qalsdk.core.NetConnInfoCenter" android:process=":QALSERVICE"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.TIME_SET" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.TIMEZONE_CHANGED" /> </intent-filter> </receiver>在Application
//设置用户状态变更监听器,在回调中进行相应的处理 TIMManager.getInstance().setUserStatusListener(new TIMUserStatusListener() { @Override public void onForceOffline() { ToastUtil.showToast(CONTEXT, "账号在其他设备登陆"); } @Override public void onUserSigExpired() { //票据过期,需要换票后重新登录 ToastUtil.showToast(CONTEXT, "请重新登陆"); } });
if (MsfSdkUtils.isMainProcess(CONTEXT)) { TIMManager.getInstance().setOfflinePushListener(new TIMOfflinePushListener() { @Override public void handleNotification(TIMOfflinePushNotification notification) { if (notification.getGroupReceiveMsgOpt() == TIMGroupReceiveMessageOpt.ReceiveAndNotify) { //消息被设置为需要提醒,暂时没有做点击后的处理 notification.doNotify(getApplicationContext(), R.mipmap.ic_launcher); } } }); }
初始化IMSdk(获取SDK版本似乎仅在Eclipse有效)
TIMManager.getInstance(); TIMManager.getInstance().init(this);通过后台接口获取userSig(这是独立模式,托管模式看文档吧)
登陆SDK
/** * 登陆IMSDK */ public static void loginSig(final Context context, String userSig, final String userName) { TIMUser user = new TIMUser(); user.setIdentifier(userName);//userName用户名(id) user.setAccountType(API.AccountType);//账号类型、由腾讯分配 user.setAppIdAt3rd(API.sdkAppId + "");//与AppId相同的字符串 //发起登录请求 TIMManager.getInstance().login( API.sdkAppId, //sdkAppId,由腾讯分配 user, userSig,//用户帐号签名,由私钥加密获得,具体请参考文档 new TIMCallBack() {//回调接口 @Override public void onSuccess() {//登录成功 ToastUtil.showToast(context, "userSig登陆成功,用戶名:" + TIMManager.getInstance().getLoginUser()); } @Override public void onError(int code, String desc) {//登录失败 CodeToa(context, code); } }); }
创建房间
ArrayList<String> list = new ArrayList<>(); list.add("");//被邀请人用户名 TIMGroupManager.getInstance().createGroup( "Private", //群组类型: 目前仅支持私有群 list, //待加入群组的用户列表 RoomName, //群组名称 cb);//创建房间回调 TIMValueCallBack<String> cb = new TIMValueCallBack<String>() { @Override public void onError(int code, String desc) { AbLogUtil.e("创建", "create group failed: " + code + " desc"); ILVBSDK.CodeToa(getActivity(), code); } @Override public void onSuccess(String s) { //回调返回创建的群组Id Bundle bundle = new Bundle(); bundle.putString("RoomId", s); MyApplication.openActivity(getActivity(), InterviewRoomActivity.class, bundle); SharedPreferencesUtil.putSharePre(getActivity(), "RoomId", s); AbLogUtil.e("房间Id", s); ToastUtil.showToast(getActivity(), "创建成功,房间id:" + s); } };
进入房间
</有时间补充>
0 0
- 腾讯IM即时通讯(2.4.1)
- 高仿腾讯QQ即时通讯IM项目
- IceWarp 即时通讯(IM)服务
- IceWarp 即时通讯(IM)服务
- 即时通讯(IM)面试题
- IM即时通讯(四) 文件传输
- IM(即时通讯)
- IM即时通讯
- IM/即时通讯
- 即时通讯IM
- 即时通讯(IM)
- 即时通讯-im
- xmpp开发IM即时通讯系列(二)--即时通讯服务器搭建(1)数据库搭建
- Android- 环信IM即时通讯(1)
- 关于IM(即时通讯开发)技术问题
- 成佩涛-移动IM(即时通讯解决方案)
- IM即时通讯(五) 语音传输
- android应用开发框架+即时通讯IM app开发(1)-前言和工程目录结构
- Nodejs+Express创建HTTPS服务器
- WAPI安全协议检测系统V3解析:自动化、高效率、低成本
- SpringMvc教程(一)--SpringMvc的概述
- 安卓学习-活动(Activity)
- 正则表达式随笔
- 腾讯IM即时通讯(2.4.1)
- php读取目录文件函数is_dir(),opendir(),readdir(),closedir()
- 关于iOS10需要支持https才能通关苹果App Store审核问题
- C算法实现:将字符串中的数字返回为整型数
- Android 实现自定义时间间隔,文字颜色的TimePicker
- 使用Java原生代理实现AOP
- 线程
- angular学习(六)—— 依赖注入
- kendo 隐藏列,隐藏列时 样式混乱的问题