6

나는 Azure Notification Hub를 사용하여 Android 앱에 푸시 알림을 구현하기 위해 Sending push notifications to Android with Azure Notification Hubs tutorial을 팔로우했습니다.Android - Azure 푸시 알림 Google FCM

이전에는 Azure Notification Hub와 함께 Google 클라우드 메시징 서비스를 사용하여이 작업을 수행하는 다른 자습서를 사용했지만 Android Studio에서 내 앱을 내 기기로 보낼 때만 푸시 알림을받을 수있었습니다. 서명 된 APK를 만들어 기기에 설치했을 때 푸시 알림이 전송되지 않았습니다.

어제 하루 종일 (ProGuard를 사용하지 않도록 설정하고 다른 API 키를 사용하는 등) 시도해 보았습니다. 오늘 아침에 새로 시작하기로 결정했습니다. 이제 Cloud Console에서 GCM을 클릭하면 Google이 사용자에게 Firebase Cloud Messaging을 안내한다는 사실을 깨닫게되었습니다. 그래서 ... 위 튜토리얼과 Google FCM을 사용하여 앱에 푸시 알림을 구현했습니다.

멋진 작품이지만 .... 서명 된 APK를 만들어 Android 기기에서 내 기기로 앱을 전송하는 대신 내 기기에 설치하면 누름 알림이 표시되지 않습니다. 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을 따랐습니다.
내가받은 응답은 다음과 같습니다 (성공 메시지처럼 보입니다).하지만 내 장치에는 Push가 없습니다.

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

자습서와 마찬가지로 내 cURL 요청은 다음과 같습니다.

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를 사용할 때 그냥없는 것으로 나타났습니다. 안드로이드 Studio에서, 나는 APK 빌드 APK 옵션

enter image description here 다음/응용 프로그램/빌드/출력/APK/푸시 알림 경우 MyAppFolder에있는 앱 debug.apk 파일을 사용하여 설치를 사용하여 생성하는 경우 여전히 작동하지 않습니다. 실행 옵션을 사용하여 Android Studio에서 내 기기로 보낼 경우에만 작동합니다.

+0

[진단 지침] (https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-push-notification-fixer /) 그리고 아무것도 일어나지 않고 게시물을 업데이트하는 데 도움이되지 않는다면? –

+0

@ NikitaG. - 절대적으로 할 수있는 링크에 대해 감사드립니다. – Phil

+0

어떤 장치를 사용하고 있습니까? –

답변

3

이것을 알아 내려고 노력한 끝에, 나와있는 푸시를 처리하는 클래스 인 MyHandler 클래스가 공개로 선언되지 않았 음을 알게되었습니다.

클래스를 public으로 변경하면 push가 빌드 및 서명 된 apk에서 작동합니다.

누군가가 나를 왜곡했기 때문에 응용 프로그램이 apk 파일에서 설치되었을 때만 문제가 발생할 수있는 이유를 설명하는 것을 좋아합니다.

+1

나는 또한 같은 경험을했지만 단순한 한정어가 어떻게이 문제를 일으킬 수 있는지 이해하지 못한다 !! –

1

먼저 문제가 알림 허브 측인지 또는 PNS (이 경우 FCM) 측인지 여부를 파악하려는 경우 이러한 종류의 문제를 수행하는 데있어 중요한 방법 중 하나입니다.

먼저 할 일은 ANH diagnosis guidelines입니다. 문제가 여전히 해결되지 않으면 PNS를 통해 메시지를 직접 푸시하여 작동하는지 여부를 확인하는 것이 좋습니다. (FCM의 경우 send a test push from the command line 일 수 있습니다.)

+1

이 모든 것을 이해해 주셔서 감사합니다. 내 푸시 핸들러 클래스에서 "public"수정자를 놓쳤다는 것을 알았지 만, 다른 가능성을 제거하지 않고는 찾지 못했을 것입니다. – Phil

+0

당신이 알아 낸 것을 기쁘게 생각합니다. 이러한 것들은 당신이 이미 그것을 풀었을 때 단순 해 보이지만 발견하기가 매우 어렵습니다. 잘 했어! –