2017-01-28 4 views
1

Я могу получать уведомления с значками и звуками, когда пользователь вошел в систему и когда пользователь вышел из системы и принудительно закрыл приложение, уведомление получено без значков и звуков (но белый квадрат был отображается как значок).Значок уведомлений Firbase Notification и Ringtone не работает, когда приложение выходит из системы и принудительно закрывается. Это происходит только над устройством версии Lollipop

Проблема заключается только в таких устройствах типа Lollipop, как Nexus.

Я здесь приложен мой код.

public class FireMsgService extends FirebaseMessagingService { 
    private JSONObject jObject; 

    private String joborder_id, sendout_id; 
    private Integer navigation; 
    Intent intent; 

    @Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 
     super.onMessageReceived(remoteMessage); 
     String title = remoteMessage.getNotification().getTitle(); 
     String message = remoteMessage.getNotification().getBody(); 
     String dataResponse = remoteMessage.getData().toString(); 
     try { 
      jObject = new JSONObject(dataResponse); 
      if (jObject != null) { 
       JSONObject responseObject = jObject.getJSONObject("response"); 
       navigation = responseObject.getInt("navigation"); 
       joborder_id = String.valueOf(responseObject.getInt("joborder_id")); 
       sendout_id = String.valueOf(responseObject.getInt("sendout_id")); 
      } 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     if (navigation == 1) { 
      if (SessionStores.getLogInState(this).equalsIgnoreCase("0")) { 
       intent = new Intent(this, SignIn.class); 
      } else { 
       intent = new Intent(this, PositionDetailScreenRefactor.class); 
       intent.putExtra("id", joborder_id); 
       intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      } 
     } else if (navigation == 2) { 
      if (SessionStores.getLogInState(this).equalsIgnoreCase("0")) { 
       intent = new Intent(this, SignIn.class); 
      } else { 
       intent = new Intent(this, ScheduleMeeting.class); 
       intent.putExtra("sendout_id", sendout_id); 
       intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      } 
     } else if (navigation == 3) { 
      if (SessionStores.getLogInState(this).equalsIgnoreCase("0")) { 
       intent = new Intent(this, SignIn.class); 
      } else { 
       intent = new Intent(this, PositionAcceptenceScreen.class); 
       intent.putExtra("sendout_id", sendout_id); 
       intent.putExtra("joborder_id", joborder_id); 
       intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      } 
     } else if (navigation == 0) { 
      if (SessionStores.getLogInState(this).equalsIgnoreCase("0")) { 
       intent = new Intent(this, SignIn.class); 
      } else { 
       intent = new Intent(this, NotificationScreen.class); 
       intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      } 
     } 
     PendingIntent pendingIntent = PendingIntent.getActivity(this, 1410, intent, 
       PendingIntent.FLAG_ONE_SHOT); 
     Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(getNotificationIcon()) 
       .setContentTitle(title) 
       .setContentText(message) 
       .setAutoCancel(true) 
       .setSound(sound) 
       .setContentIntent(pendingIntent); 
     NotificationManager notificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     notificationManager.notify(1410, notificationBuilder.build()); 
    } 
    private int getNotificationIcon() { 
     boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP); 
     return useWhiteIcon ? R.drawable.notificationlogo : R.drawable.app_icon; 
    } 
} 

ответ

0

https://clevertap.com/blog/fixing-notification-icon-for-android-lollipop-and-above/ и для создания ПОС прозрачного использования этого link

+0

Я пробовал это, он отлично работает, когда пользователь вошел в систему. Я получаю пустой значок, когда пользователь вышел из системы и принудительно закрыл приложение. – karthik

0

От Firebase 9.8.0 работает отлично

, что означает Добавить эту зависимость в вас Gradle App

compile 'com.google.firebase:firebase-core:9.8.0' 
compile 'com.google.firebase:firebase-messaging:9.8.0' 

и в манифесте.

<meta-data 
      android:name="com.google.firebase.messaging.default_notification_icon" 
      android:resource="@drawable/ic_stat_notify" /> 
     <meta-data 
      android:name="com.google.firebase.messaging.default_notification_color" 
      android:resource="@color/colorAccent" /> 

 Смежные вопросы

  • Нет связанных вопросов^_^