服务器搭建好了之后,往客户端推送。按照里面自带的一个client,可以分别在模拟器和真机上分别测试,不过由于这个框架真的不是很完善,会遇到各种问题。
(1)
其中还遇到了一个安卓模拟器的问题,启动模拟器的时候,会一直等待,等待很久后失败。是因为直接在eclipse中启动的原因,所以先在sdk中运行一下SDK Manager,创建一个模拟器,然后再启动就ok了。
(2)
模拟器中跑这个客户端程序,要注意一点,把lib修改为libs,是因为adt版本升级的原因,不然的话,会造成找不到类ClassNotFound的错误。
本机模拟器调试,配置:
apiKey=1234567890
xmppHost=10.0.2.2
xmppPort=5222
局域网的话,host就是服务器在局域网的ip。公网就是公网的ip了。
(3)
基本在模拟器不会出什么问题,然后就是在真机。这个问题很奇特,目前准备研究一下。
真机可以连接服务器,但是接受不到推送,这个不是配置的原因了。是那个客户端代码有问题。
解决方法是:
在NotificationService类中修改 public static final String SERVICE_NAME = "abc"; 然后在注册文件中注册服务中:<action android:name="abc" />。就可以了。
有人怀疑是service name不可以太长,原来的是有点长。安卓这个,接触比较少,暂时还不了解。
修改之后,真机也可以接受到推送信息了,但是服务器的控制台会报一个错误,但是 不影响推送,具体原因要等研究之后再确定了。
报错内容:
<org.androidpn.server.xmpp.net.XmppIoHandler> : java.lang.NoClassDefFoundError: Could not initialize class org.androidpn.server.xmpp.ssl.SSLConfig