2016-06-03 3 views
2

이상한 문제가 있습니다. 내 Android 앱에서 알림을 보내는 두 가지 방법이 있습니다. 하나는 안드로이드 서비스이고 다른 하나는 FCM입니다.Android 알림 아이콘 문제

  1. 는 관계없이 응용 프로그램이 실행 여부의 안드로이드 서비스에서 송신되는 통지의 아이콘이 제대로 나타납니다 다음과 같이

    시나리오입니다.

  2. 앱이 실행 중일 때 FCM을 통해 알림을 보내면 알림 아이콘이 계속 나타납니다.
  3. 그러나 앱이 실행되고 있지 않고 FCM을 통해 알림을 보내면 알림 아이콘 대신 흰색 사각형이 표시됩니다. FCMService에서

내 코드 :

Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.notification_icon) 
       .setContentTitle("Android App") 
       .setContentText(messageBody) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setContentIntent(pendingIntent); 

     NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     notificationManager.notify(0, notificationBuilder.build()); 

답변

-1

이 github의의 FCM 페이지에 설명 FMC 버그입니다.

https://github.com/firebase/quickstart-android/issues/4

+0

을 찾을 수 없습니다 사용해야합니다. @seyfx라는 단서가 있습니까? –

+0

"두 가지 방법으로 알림을 보내십시오"라는 의미를 설명 할 수 있습니까? –

2

는 대부분의 경우 문제는 notification-messagesdata-messages 사이의 차이입니다.

읽어 보시기 바랍니다 : https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

사용 알림 메시지를 당신이 FCM은 클라이언트 응용 프로그램 대신에 알림을 표시 처리하고자 할 때. 이 클라이언트 앱에서 메시지를 처리하려고 할 때 데이터 메시지를 사용하십시오.

    :

는 현재 FCM 웹 콘솔은 (A notification 페이로드 또는 API를 통해) 웹 콘솔을 통해 전송 알림 - 메시지

그래서 모든 메시지를 이런 식으로해야 될 것를 전송

  • 앱이 닫히거나 백그라운드로있는 경우 : FCM이 알림을 표시합니다. 당신은 당신이 할 수있는 그것을 사용자 정의 할 수 있지만 (매니페스트 또는 전송 API 호출에서) 특정 구성을 제공해야하는 경우 응용 프로그램이 전경에있는 경우 https://firebase.google.com/docs/cloud-messaging/android/client#manifest
  • 를 참조하십시오 FCM이 호출 onMessageReceived()
  • .

    당신이 원하는 행동이onMessageReceived()항상라고한다는 것입니다 경우
    다음 당신은 고정되어있는 경우 data-only (no notification) message