基于信鸽的在线聊天软件(一)
来源:互联网 发布:淘宝如何用支付宝付款 编辑:程序博客网 时间:2024/04/29 00:39
服务端和客户端的搭建
平台选择
首先想到的是用服务器搭,然而学校封端口,虚拟服务器又麻烦的很,所以考虑到了用云服务。两个选择,腾讯信鸽和百度云推送,本项目基于信鸽。
信鸽开发者中心 http://xg.qq.com/xg
sdk地址 http://xg.qq.com/xg/ctr_index/download
服务端搭建
在服务端的sdk里找到了本项目最核心的代码
public static JSONOject pushTokenAndroid(long accessId,String secretKey,String title,String content,String token)
- accessId是后台借口鉴权的密钥,accessKey为客户端的鉴权密钥,这两个在信鸽开发者后台配置能找到。
title是发送信息的标题,content即是内容,token是发送设备代号,在后面会提到。 pushTokenAndroid方法会有返回值
返回{"ret_code":0}
代表成功
返回{"ret_code":-1,"err_msg":"error description"}
即发送失败。好了服务端发送就这么搞定了。
创建客户端工程
以eclipse为开发的IDE为例,将SDK导入到工程的步骤为:
1、创建或打开Android工程(关于如何创建Android工程,请参照开发环境的章节)。
2、将信鸽 SDK目录下的libs目录所有文件拷贝到工程的libs(或lib)目录下。
3、选中libs(或lib)目录下的信鸽jar包,右键菜单中选择Build Path, 选择Add to Build Path将SDK添加到工程的引用目录中。
4、打开Androidmanifest.xml,添加以下配置(建议参考下载包的Demo修改),其中YOUR_ACCESS_ID和YOUR_ACCESS_KEY替换为APP对应的accessId和accessKey,请确保按照要求配置,否则可能导致服务不能正常使用。
<application <!-- APP项目的其它配置... --> <!-- 【必须】 信鸽receiver广播接收 --> <receiver android:name="com.tencent.android.tpush.XGPushReceiver" android:process=":xg_service_v2" > <intent-filter android:priority="0x7fffffff" > <!-- 【必须】 信鸽SDK的内部广播 --> <action android:name="com.tencent.android.tpush.action.SDK" /> <action android:name="com.tencent.android.tpush.action.INTERNAL_PUSH_MESSAGE" /> <!-- 【必须】 系统广播:开屏和网络切换 --> <action android:name="android.intent.action.USER_PRESENT" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <!-- 【可选】 一些常用的系统广播,增强信鸽service的复活机会,请根据需要选择。当然,你也可以添加APP自定义的一些广播让启动service --> <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" /> <action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /> </intent-filter> </receiver> <!-- 【必须】 (2.30及以上版新增)展示通知的activity --> <!-- 【注意】 如果被打开的activity是启动模式为SingleTop,SingleTask或SingleInstance,请根据通知的异常自查列表第8点处理--> <activity android:name="com.tencent.android.tpush.XGPushActivity" android:exported="false" > <intent-filter> <!-- 若使用AndroidStudio,请设置android:name="android.intent.action"--> <action android:name="" /> </intent-filter> </activity> <!-- 【必须】 信鸽service --> <service android:name="com.tencent.android.tpush.service.XGPushService" android:exported="true" android:persistent="true" android:process=":xg_service_v2" /> <!-- 【必须】 通知service,此选项有助于提高抵达率 --> <service android:name="com.tencent.android.tpush.rpc.XGRemoteService" android:exported="true" > <intent-filter> <action android:name="应用包名.PUSH_ACTION" /> </intent-filter> </service> <!-- 【必须】 请将YOUR_ACCESS_ID修改为APP的AccessId,“21”开头的10位数字,中间没空格 --> <meta-data android:name="XG_V2_ACCESS_ID" android:value="YOUR_ACCESS_ID" /> <!-- 【必须】 请将YOUR_ACCESS_KEY修改为APP的AccessKey,“A”开头的12位字符串,中间没空格 --> <meta-data android:name="XG_V2_ACCESS_KEY" android:value="YOUR_ACCESS_KEY" /></application><!-- 【必须】 信鸽SDK所需权限 --><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><uses-permission android:name="android.permission.RESTART_PACKAGES" /><uses-permission android:name="android.permission.BROADCAST_STICKY" /><uses-permission android:name="android.permission.WRITE_SETTINGS" /><uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.READ_LOGS" /><uses-permission android:name="android.permission.VIBRATE" /><!-- 【可选】 信鸽SDK所需权限 --><uses-permission android:name="android.permission.BLUETOOTH" /><uses-permission android:name="android.permission.BATTERY_STATS" />
1 0
- 基于信鸽的在线聊天软件(一)
- 基于GUI的在线聊天
- 基于Xmpp,Openfire和Asmack的聊天软件的开发(一)
- 基于C++实现视频聊天软件(一)
- 基于控制台和数据库的聊天软件开发文档(一)
- 基于JavaSE的在线聊天系统
- 基于webScoket的在线客服聊天
- 【JavaWeb】关于WebSocket的IM在线聊天技术(一)
- C++ 基于CSocket的网络聊天软件(1)
- C++ 基于CSocket的网络聊天软件(2)
- C++ 基于CSocket的网络聊天软件(3)
- java即时在线聊天(一)
- 基于Delphi的网上视频聊天软件
- 基于Qt的局域网聊天软件
- 基于Linux和Qt的聊天软件
- linux下基于socket的聊天软件
- 基于Bmob的仿微信即时聊天软件
- 基于socket的简单聊天程序(一)
- Python Logging使用
- 【网络基本功能七】细说IP地址与子网
- 多尺度无序池化卷积神经网络——MOP-CNN(MultiScale Orderless Pooling)
- 理解Node.js中间件以及Connect 模块
- C语言注释与C++注释的相互转换
- 基于信鸽的在线聊天软件(一)
- linux下c编程基础
- 2016校招题
- websocket
- poj 2528 线段树数据离散化+区间更新
- 后台传递给前台,Json获取的值为undefined
- 线性表、栈和队列简记
- vim高级配置及NERDTree
- Android View绘制流程