首先我们比较一下目前可以实现推送的三种方式:

1.客户端定时去服务端取或者保持一个长Socket,从本质讲这个不叫推送,这是去服务端拽数据。但是实现简单,主要缺点:耗电等
2.Google的C2DM,具体不细说,缺点,服务器在国外,不是很稳定。
3.XMPP协议,它是一种基于XML的传递协议,具有很强的灵活性和可扩展性。它的特点是将复杂性从客户端转移到了服务器端。

androidpn是基于XMPP协议的用于向Android客户端推送文本信息的一套开源的工具。它帮我们做了那些维护Socket长连接等复杂的事情。

1.下载androidpn服务器端与客户端的Demo并运行;一共包含三个zip文件:
1)androidpn-client-0.5.0.zip
2)androidpn-demoapp-0.5.0.zip
3)androidpn-server-0.5.0-bin.zip
   
2.启动服务器端与客户端,通过Web页面推送。XMPP在android客户端上的应用。分两部分实现:服务端搭建和客户端实现
服务端搭建:如果想测试一下功能,可以直接用搭建好的服务就行,解压androidpn-server-0.5.0-bin.zip,进入bin目录下双击run.bat,直接运行服务;
在浏览器上输入 http://127.0.0.1:7070  就进入管理界面。

遇到问题:
a.在win7环境下,双击运行run.bat闪退
解决办法:点击run.bat,右键‘编辑’,在文件末尾添加'pause';
b.运行run.bat出现’Error: JAVA_HOME environment variable not set, Androidpn not started.‘
原因:没有配置正确的环境变量;
解决办法:在’我的电脑‘-属性-系统设置-环境变量,配置环境变量JAVA_HOME = jdk安装目录,地址写到jdk目录下bin的上一级,如C:\jdk;或者也可以编辑run.bat,把内容中的’JAVA_HOME‘强制替换成jdk目录地址
c.运行run.bat出现’Error: no `server' JVM at `C:\jdk\bin\server\jvm.dll'.‘
原因:jdk-bin-server目录下缺少jvm.dll文件
解决办法:默认安装jdk完成后,在bin目录下有client目录,但是没有server目录,在client目录下有jvm.dll文件,可以直接新建server文件夹,将jvm.dll文件拷贝进去

客户端实现:

解压androidpn-client-0.5.0.zip,导入eclipse工程,运行前更改一处IP地址,修改res/raw/androidpn.properties文件中的xmppHost为xmppHost=10.0.2.2
原因:模拟器访问本机需要改成10.0.2.2,下面为SDK中IP说明。
[模拟器把10.0.2.2认为是所在主机的地址,127.0.0.1是模拟器本身的回环地址,10.0.2.1表示网关地址,10.0.2.3表示DNS地址,10.0.2.15表示目标设备的网络地址]

运行android程序,从服务端发送消息,客户端就可以收到推送消息了。

遇到问题:
a.运行时出现’java.lang.NoClassDefFoundError: org.androidpn.client.PersistentConnectionListener‘异常
原因:更新了Android SDK 和ADT 到 R17 以后出现了一个问题,就是原来所有引入第三方的jar文件的项目,运行到一旦调用了第三方jar文件里的类的地方,都会出现类似
E/AndroidRuntime : java.lang.NoClassDefFoundError 的错误。
解决方法:将所有的第三方jar文件从 standard Java build path中移除;右键项目名 > Properties > Java Build Path > tab Libraries >将 “Android X.X” and the “Android Dependencies”之外的所有jar文件引用全部去除重命名lib文件夹为libs;ibs库文件夹就能被 Android plugin 添加到  “Android Dependencies” 条目里。;Clean the project 
b.Android 中出现这样的警告 Exported service does not require permission 
解决办法:加上这个就可以了android:exported="false";比如: <service android:name="MusicService"  android:exported="false">

使用Androidpn实现Android消息推送相关推荐

  1. Android—消息推送机制

    知识点: 长连接与短连接 端内与端外推送 通知与透传消息 服务保活(心跳机制) 长连接和短连接 消息推送需要客户端与服务端进行连接,因此分为两种方式 长连接,在TCP层握手成功后,不立即断开连接,并在 ...

  2. Android消息推送 解决方案

    前言 鉴于现在运营需求的增强,消息推送在Android开发中应用的场景是十分常见 如电商的活动宣传.资讯类产品进行新闻推送等等 推送消息截图 今天,我将全面介绍Android中实现消息推送的7种主流解 ...

  3. Carson带你学Android:全面解析Android消息推送解决方案

    前言 鉴于现在运营需求的增强,消息推送在Android开发中应用的场景是十分常见 如电商的活动宣传.资讯类产品进行新闻推送等等 今天,我将全面介绍Android中实现消息推送的7种主流解决方案 Car ...

  4. Android消息推送完美解决方案全析

    Android消息推送完美解决方案全析 参考文章: (1)Android消息推送完美解决方案全析 (2)https://www.cnblogs.com/xueshui20/p/4151405.html ...

  5. Android 消息推送

    Android 消息推送 那位大哥做过啊 android是用服务做吧? pushsharp 雲推送 你要有服務器來服務 不是云推送吧 去搜這個,有server,有client,有demo 自己做的话, ...

  6. android 消息推送方法,一种基于Android系统的消息推送方法技术方案

    [技术实现步骤摘要] 本专利技术涉及一种基于Android系统的消息推送方法,属于计算机 技术介绍 推送功能在手机应用开发中越来越重要,已经成为手机开发的必选项.消息推送,就是在互联网上通过定期传送用 ...

  7. WebSocket实现android消息推送

    WebSocket实现android消息推送 WebSocket是HTML5出的协议,基于TCP.它实现了浏览器与服务器全双工(full-duplex)通信--允许服务器主动发送信息给客户端. Web ...

  8. android消息推送demo

    android消息推送demo 1.消息推送机制  服务器器端需要变被动为主动,通知客户一些开发商认为重要的信息,无论应用程序是否正在运行或者关闭.  我想到了一句话:don't call me,i ...

  9. Android 消息推送OnePush

    Android 消息推送 1.实现原理 1.消息推送的实质 实际上,是当服务器有新消息需推送给用户时,先发送给应用App,应用App再发送给用户 推送的消息一般是用户需要的或app希望用户知道的消息 ...

最新文章

  1. java 字符串分离处理技术
  2. 统计字符串中各类型的数字个数
  3. python多因子量化选股模型_量化新兵第十步:多因子选股模型
  4. 像excel一样规律填充(二)
  5. 阿里P7跳槽后曝光薪资截图:新公司月入税后五万多,很满足!
  6. 非参数统计的Python实现—— Friedman 秩方差分析
  7. 北斗三号频点_解码北斗三号:和前两代卫星相比,它有何不同?
  8. 《乐高EV3机器人搭建与编程》——2.1 零件储存箱
  9. 谷歌浏览器书签丢失,恢复工具
  10. 计算机硬盘被制成动态硬盘,win10系统基本磁盘转换成动态磁盘的处理办法
  11. MySQL学习笔记[学习资料来源于B站黑马测试]
  12. android 状态栏高度多少像素,Android之获取屏幕的尺寸像素及获取状态栏标题栏高度...
  13. 猎魂觉醒服务器界面不显示角色,猎魂觉醒新人常见问题集合 新人常见问题解决_3DM手游...
  14. QGIS官网安装包下载与安装
  15. 操作系统OS第一章练习作业【附答案详解】
  16. Anaconda3安装教程(详细)
  17. 我推荐阅读的微信公众号-IT类
  18. 快速上首页的五大技巧
  19. 指针进阶·八道笔试题(四)
  20. 购买SOLIDWORKS正版软件需要注意哪些问题

热门文章

  1. 一加7pro何时发布android10,一加7 Pro 5G升级Android10时间确认:就在2020年第一季度...
  2. 【北邮国院大三上】互联网协议_Internet Protocol_PART B
  3. 申请注册@MSN.COM邮箱!
  4. c语言循环左移程序,用C语言实现循环左移,右移
  5. android线性布局控制间隙,Android线性布局(Linear Layout)
  6. Arcmap10.0 提取单个流域范围
  7. laravel 契约
  8. 2022年常见软件测试面试题全套
  9. 电脑风扇控制软件-全网最全教程+下载链接
  10. 闭关第4天——仰头看美女网络尖兵,震惊思无证程序屌丝