6

我已經關注Sending push notifications to Android with Azure Notification Hubs tutorial,使用Azure通知中心將推送通知導入到我的Android應用中。Android - Azure推送通知Google FCM

以前,我用另一個教程來做到這一點使用谷歌雲消息服務Azure的通知中心,但是我只能得到推送通知,當我把我的應用我從Android工作室。當我構建一個簽名的APK並將其安裝到我的設備上時,不會發送推送通知。

試圖昨天一整天,以得到它的工作(禁用ProGuard的,嘗試不同的API密鑰等),我決定重新開始這個早晨起牀後。這是當我意識到Google現在將用戶引導至Firebase雲消息傳遞時,他們從雲控制檯單擊GCM。所以...我已經使用上述教程和Google FCM將推送通知實施到了我的應用中。

它巨大的....但同樣的工作,當我創建一個簽名的APK安裝,我的設備上而不是將應用到我的設備從Android Studio中,我沒有得到任何推送通知。 Azure顯示推送已成功發送,但沒有任何內容。

在我的推送處理程序中,我有一個日誌到控制檯,如下面的onReceive方法所示。當我從Android Studio運行應用程序時,這被稱爲罰款,並推動通過它應該。但是當我創建簽名的apk並運行它時,onReceive方法不會被調用並且不會進行推送。

@Override 
    public void onReceive(Context context, Bundle bundle) { 

     Log.d("TAG","TRIGGERED"); 

     ctx = context; 
     String nhMessage = bundle.getString("message"); 
     String nhTitle = bundle.containsKey("title") ? bundle.getString("title") : "Title"; 
     String nhBadge = bundle.containsKey("badge") ? bundle.getString("badge") : null ; 
     sendNotification(nhMessage,nhTitle,nhBadge); 
     if (Main.isVisible) { Main.mainActivity.ToastNotify(nhMessage); } 
    } 

有人請幫幫我。我在想什麼? 是因爲我直接安裝APK嗎?是否需要從Google Play下載?除此之外,我不知道它會是什麼。

UPDATE

按尼基塔G公司的建議,我已經試過了instructions to send a test push from the command line using cURL
我回來的迴應是以下內容(它看起來像一個成功的消息),但我沒有推我的設備。

{"multicast_id":6722521883082447284,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1473693614087201%06fb35f0f9fd7ecd"}]} 

我的捲曲請求是這樣的,就像教程節目。

curl --header "Authorization: key=XXXXXXXXXXXX" --header "Content-Type: application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"fs...Tw:APA...SzXha\"]}" 

UPDATE

我只注意到它不只是當我使用簽署過的APK。在Android Studio中,如果我生成使用APK生成APK選項

enter image description here

,然後安裝使用位於myappfolder /應用/編譯/輸出/ APK /時,推送通知的應用程序,debug.apk文件仍然不起作用。他們只有在我使用Run選項從Android Studio發送到我的設備時纔有效。

+0

你可以去[診斷指南](https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-push-notification-fixer /),如果沒有什麼能幫助更新發布的內容? –

+0

@NikitaG。 - 謝謝你的鏈接,我絕對會做。將回發我找到的什麼 – Phil

+0

您正在使用哪種設備? –

回答

3

後試圖算出這個日子,原來MyHandler的我類,它是負責處理該來通過推類,是不是聲明爲public。

將類更改爲public後,現在可以在構建和簽名apks上進行工作。

很想有人解釋爲什麼這隻會導致一個問題,當應用程序從apk文件安裝,雖然因爲那部分讓我難住。

+1

我也有同樣的經歷,但我不明白如何簡單的限定符可以產生這個問題! –

1

如果首先嚐試瞭解問題是在通知中心端還是在PNS(本例中爲FCM)端,那麼在這類問題中需要遵循的一種重要方法。

其中一種方法是首先通過ANH diagnosis guidelines。如果問題仍未解決,嘗試直接通過PNS推送消息以查看問題是否有效可能會有所幫助。 (在FCM的情況下,你可以send a test push from the command line。)

+1

非常感謝您的幫助。原來,我錯過了我的推送處理程序類中的「公共」修飾符,但如果沒有您的幫助消除其他可能性,我絕不會找到它。 – Phil

+0

很高興你明白了。如果你已經解決了這些問題,看起來很簡單,但卻很難找到。做得好! –