服務器搭建好了之後,往客戶端推送。按照裡面自帶的一個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
除非注明轉載,其他文章均為作者原創,可以自由轉載,但請注明轉載的本文的地址,請尊重作者的勞動成果。