androidpn实现消息推送

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 的错误。

解决方法:将androidpn-client-0.5.0文件夹下的lib文件夹重命名为libs,然后重新导入该项目;导入新的项目后将所有的第三方jar文件从 standard Java build path中移除;右键项目名 > Properties > Java Build Path > tab Libraries >将 “Android X.X” and the “Android Dependencies”之外的所有jar文件引用全部remove,重新引用libs文件夹下的jar包即可;最后Clean the project 。

b.Android 中出现这样的警告 Exported service does not require permission 

解决办法:加上这个就可以了android:exported="false";比如: <service android:name="MusicService"  android:exported="false">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值