服务端和客户端的搭建

平台选择

  • 首先想到的是用服务器搭,然而学校封端口,虚拟服务器又麻烦的很,所以考虑到了用云服务。两个选择,腾讯信鸽和百度云推送,本项目基于信鸽。

  • 信鸽开发者中心 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. 基于java的在线聊天系统设计

    基于java的在线聊天系统设计 在进入20世纪90年代以后,信息量就以几何倍的数量进行增长,而互联网的出现则促进了信息的传播,21世纪更是一个信息大爆炸的时代,计算机及互联网已被广泛运用到各个领域及地 ...

  2. java实现社交平台,基于Java的在线社交软件的设计与实现.doc

    摘要:本项目的目标是设计一个基于局域网的网络聊天系统,根据当前网络技术的发展趋势和实际情况,最终达到满足特定群体的需求.软件适用于同一部门工作的同事或同一学校的学生,以满足他们经常需要在学校和同事之间 ...

  3. java在线聊天项目ppt_基于JavaEE的在线聊天聊天.ppt

    基于JavaEE的在线聊天聊天.ppt 聊城大学论文答辩,指导教师,学生姓名,年 月,基于JavaEE的在线聊天聊天 系统的设计与实现,论文提纲,,选题背景.研究内容,1,JavaEE技术介绍,主要创 ...

  4. 基于Java的在线聊天APP系统分析及设计

    基于Java的在线聊天APP系统分析及设计 目录 基于Java的在线聊天APP系统分析及设计 1 一. 需求分析 3 核心用户分析 3 系统的主要功能的概述 3 项目操作流程图 4 功能详解 4 登录 ...

  5. 基于Internet的语音聊天软件设计与实现

    基于Internet的语音聊天软件设计与实现 朱国华,夏敏捷 (中原工学院 计算机科学系 ,河南 郑州 450007) 摘要:文章对网络环境下语音通信的原理进行了系统地分析,详细阐述了语音的采集.语音 ...

  6. C# WPF 基于Socket的企业聊天软件IM(源码)

    两年前的一个设计,找资料时扒了出来,打开看了一下源码,那个时候的设计真是无框架无模式的设计,但对像QQ这样的聊天软件无疑是一个了解和值得参考的实例,所以大牛请绕过,在此跟大家分享一下,希望对正在学习S ...

  7. 从头搭建一个基于 Python 的在线聊天室

    本场 Chat,是基于 Python + Redis + Flask 来搭建一个简单易用的在线聊天室.完全从零开始,一步一步完成整个项目. 主要分享内容: Flask 项目结构 Python Redi ...

  8. 基于TCP的网络聊天软件

    这个聊天软件运行在linux上.整个项目有两大部分:服务器和客户端 服务器采用select编程实现与多个客户端的通信. 服务器使用了sqlite3 对客户的信息进行存储. 整个项目实现了这些功能: 注 ...

  9. 嘿从零开始基于SpringBoot 打造在线聊天室(4.4W字最长博文)

    文章目录 前言 效果 主页面 消息提示 聊天页面 登录注册 前端 项目构建 依赖 项目结构 登录注册 验证码部分 登录页面 注册页面 主页面 流程 websocket loadmessage 消息发送 ...

最新文章

  1. python 路径往上一层_Python常用模块之模块、包介绍和相关语法
  2. AJAX 跨域请求 - JSONP获取JSON数据
  3. 自己对有上下界的网络流的理解
  4. UIPopoverController的使用
  5. MSMQ消息队列安装
  6. PHP专题-开发基础(七)
  7. 为什么说,每个人都应该多读些书?
  8. Hive关于数据表的增删改(内部表、外部表、分区表、分桶表 数据类型、分隔符类型)
  9. 【人工智能】“看透”神经网络
  10. Yii和ThinkPHP对比心得
  11. OpenStack KVM环境搭建
  12. The way to Go(5): 文件名、关键字与标识符
  13. Python设计模式(七)【命令模式】
  14. OpenCV-利用其它widthStep方法把interest——img的所有像素值增加200
  15. protues仿真stm32 虚拟终端 数据不显示或者乱码 标准库
  16. sharepoint搭建文档服务器,SharePoint Server教程
  17. adobe bridge cs6怎么卸载_Adobe Bridge CS6 使用教程(一)
  18. uvc摄像头代码解析6
  19. 大数据挖掘及应用(期末复习版)
  20. 《结构化思维》读书笔记

热门文章

  1. 暴雪服务器维护,3月6日服务器维护10小时 10%龙魂buff开启
  2. 大河抽奖盲盒V1.9.12开源程序源码
  3. HMS Core赋能移动金融,为行业注入增长新动力
  4. acos数学函数应用实例
  5. 微信小程序毕业设计、微信小程序商城毕业设计
  6. 80后的13种最深寂寞
  7. IOS 一些免费得接口
  8. 用python抓取网页中所有pdf文件的笨方法
  9. ppt转换成html 2010,如何把PowerPoint 2010另存为htm或mht等网页格式
  10. 第01课:什么是微服务?