簡體   English   中英

通過GCM的Worklight 6.3推送通知無法到達Android設備

[英]Worklight 6.3 push notification via GCM does not reach android device

我正在IBM Worklight 6.3上開發一個應用程序,應用程序使用推送通知。 該應用程序使用IBM Websphere應用程序服務器8.5.5.0。 以下是我們必須進行推送通知工作的詳細信息。

  1. 對於Android代碼,已添加谷歌服務器密鑰作為API密鑰和項目編號作為發件人ID。 雖然IBM聲明要使用服務器密鑰,但我還嘗試使用谷歌瀏覽器密鑰,因為之前的帖子很少。
  2. 對於Android清單,

     <uses-permission android:name="android.permission.GET_ACCOUNTS"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <permission android:name="com.POCMobileApp.permission.C2D_MESSAGE" android:protectionLevel="signature"/> <uses-permission android:name="com.POCMobileApp.permission.C2D_MESSAGE"/> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/> <service android:name="com.POCMobileApp.GCMIntentService"/> <receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND"> <!-- Receive the actual message --> <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE"/> <category android:name="com.POCMobileApp"/> </intent-filter> <!-- Receive the registration id --> <intent-filter> <action android:name="com.google.android.c2dm.intent.REGISTRATION"/> <category android:name="com.POCMobileApp"/> </intent-filter> </receiver> 
  3. GCMIntentService類已聲明為擴展

     package com.POCMobileApp; public class GCMIntentService extends com.worklight.androidgap.push.GCMIntentService { }</code> 
  4. 定義了可以提交通知的適配器過程

     function sendBroadcastNotification(notificationText) { WL.Logger.info("Notification text -> " + notificationText); var notificationOptions = {}; notificationOptions.message = {}; notificationOptions.message.alert = notificationText; notificationOptions.settings = {}; notificationOptions.settings.gcm = {}; notificationOptions.settings.gcm.payload = {"custom":"data"}; try { var timeOut = WL.Server.sendMessage("POCMobileApp", notificationOptions); } catch(e) { WL.Logger.info("Error encountered -> " + e); } return { result : "Notification sent to all users." }; } 
  5. 客戶端實現WL.Client.Push.onMessage函數

我正在調用適配器過程

https://myServername:9443/myApplication/invoke?adapter=PushNotificationAdapter&procedure=sendBroadcastNotification&parameters=%5B"test+notification"%5D

並返回以下

/*-secure-
{"result":"Notification sent to all users.","isSuccessful":true}*/

調用過程時沒有錯誤,但訂閱的設備上沒有收到通知。 從設備的logcat跟蹤中,我了解設備已與GCM服務器建立連接並且注冊成功。 以下是痕跡:

12-10 21:40:09.151:V / GCMBroadcastReceiver(18771):onReceive:com.google.android.c2dm.intent.REGISTRATION 12-10 21:40:09.151:V / GCMBroadcastReceiver(18771):GCM IntentService類:com .POCMobileApp.GCMIntentService 12-10 21:40:09.151:V / GCMBaseIntentService(18771):獲取喚醒鎖12-10 21:40:09.156:V / GCMBaseIntentService(18771):意圖服務名稱:GCMIntentService-DynamicSenderIds-2 12-10 21:40:09.161:d / GCMBaseIntentService(18771):handleRegistration:registrationId = APA91bH-QI_73vpf5sqvuvdkqha9QFNzvKa5FZGhGh - taYs9I9WCEZMwUFTz837eJXTfF3I8NMFr7jDBIYlgUrgXreoUUAYej62VmFZZoRofLBSOc6f9rKnkvXsOR3GafwsrZnIjNWp,誤差= NULL,未注冊= NULL 12-10 21:40:09.161:d / GCMRegistrar(18771):用於重置回退com.POCMobileApp 12-10 21:40:09.161:V / GCMRegistrar(18771):在應用版本1上保存regId 12-10 21:40:09.166:D / GCMIntentService(18771):GCMIntentService.onRegistered in GCMIntentService.java:81 :: WLGCMIntentService:在注冊ID為APA91bH-Q的GCM服務器上注冊 I_73vpf5sqvuvdkqha9QFNzvKa5FZGhGh--

你能告訴我哪里出錯嗎? 另外我不清楚如何調用WL.Server.sendMessage(在適配器級別)將與GCM服務器建立連接,有人可以澄清嗎?

編輯

我注意到每次調用適配器時,SystemErr.log中都會出現以下錯誤

[12/14/15 12:33:44:452 EST] 00000074 SystemErr R java.util.MissingResourceException:無法找到bundle java.util.PropertyResourceBundle的資源,由於發送的無效或不完整的標頭,key無法搭載configprofile客戶端[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at java.util.ResourceBundle.getObject(ResourceBundle.java:404)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at java.util.ResourceBundle.getString(ResourceBundle.java:364)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.worklight.common.i18n.MessageFormatter.format(MessageFormatter。 java:111)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.worklight.common.i18n.MessageFormatter.format(MessageFormatter.java:89)[12/14/15 12:33 :44:452 EST] 00000074 SystemErr R at com.worklight.common.log.WorklightServerLogger.warn(WorklightServerLogger.java:64)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.worklight .gadgets.serving.ClientConfigProfileServlet.piggybackConfigProfile(ClientConf igProfileServlet.java:238)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.worklight.gadgets.serving.InvokeProcServlet.service(InvokeProcServlet.java:82)[12/14/15 12 :33:44:452 EST] 00000074 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm .ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest( ServletWrapper.java:776)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458)[12/14 / 15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.worklight.core.auth .impl.AuthenticationFilter $ 1.execute(AuthenticationFilter.java:217)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.worklight.core.auth.impl.AuthenticationServiceBean.accessResource(AuthenticationServiceBean.java :76)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.worklight.core.auth.impl.AuthenticationFilter.doFilter(AuthenticationFilter.java:222)[12/14/15 12: 33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterManager .doFilter(WebAppFilterManager.java:928)[12/14/15 12:33:44:452 E ST] 00000074 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws .webcontainer.webapp.WebApp.handleRequest(WebApp.java:3761)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup。 java:304)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:976)[12/14/15 12:33 :44:452 EST] 00000074 SystemErr R at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm .ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.http.channel.inbound.impl。 HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.http.channel.inbound.impl.Htt pInboundLink.handleNewRequest(HttpInboundLink.java:526)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java) :312)[12/14/15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283)[12/14 / 15 12:33:44:452 EST] 00000074 SystemErr R at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:1048)[12/14/15 12:33:44:453 EST] 00000074 SystemErr R at com.ibm.ws.ssl.channel.impl.SSLConnectionLink $ MyReadCompletedCallback.complete(SSLConnectionLink.java:642)[12/14/15 12:33:44:453 EST] 00000074 SystemErr R at com .ibm.ws.ssl.channel.impl.SSLReadServiceContext $ SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1784)[12/14/15 12:33:44:453 EST] 00000074 SystemErr R at com.ibm.ws.tcp。 channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)[12/14/15 12:33:44:453 EST] 00000074 SystemErr R at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)[12/14/15 12:33:44:453 EST] 00000074 SystemErr R at com.ibm.io.async.AsyncChannelFuture .fireCompletionActions(AsyncChannelFuture.java:161)[12/14/15 12:33:44:453 EST] 00000074 SystemErr R at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)[12/14 / 15 12:33:44:453 EST] 00000074 SystemErr R at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)[12/14/15 12:33:44:453 EST] 00000074 SystemErr R at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)[12/14/15 12:33:44:453 EST] 00000074 SystemErr R at com.ibm.io.async.ResultHandler $ 2。 run(ResultHandler.java:905)[12/14/15 12:33:44:453 EST] 00000074 SystemErr R at com.ibm.ws.util.ThreadPool $ Worker.run(ThreadPool.java:1862)

可以相關嗎? 是否有可能消息未形成並傳輸到GCM?

謝謝。

用戶不會發表評論中的答案......這里是:

廣播通知功能現在正在運行。 我們進行了以下更改以使其工作 - 1.打開網絡端口。 2.僅刪除了android項目的安全性測試。 此外,還需要重新啟動應用服務器才能進行任何更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM