Уведомления Android не отображаются на одном устройстве

#android #android-notifications

#Android #android-уведомления

Вопрос:

Уведомление появляется на 2 устройствах (Xiaomi, Vivo), на обоих> 26 SDK. Но он не отображается на моем устройстве Samsung, которое также> 26.

Вот как я реализовал уведомление

 private NotificationManager mNotificationManager1;

public void CreateMessage(String name,String message, Context context){
        SharedPreferences prefs = context.getSharedPreferences(Activity.class.getSimpleName(), Context.MODE_PRIVATE);
        int notificationNumber = prefs.getInt("notificationNumber", 0);

        NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(context, "Finderr_channel_id1");

        mNotificationManager1 =
                (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
        {
            String channelId1 = "Finderr_channel_id1";
            NotificationChannel channel = new NotificationChannel(
                    channelId1,
                    "Finderr Message",
                    NotificationManager.IMPORTANCE_DEFAULT);
            mNotificationManager1.createNotificationChannel(channel);
            mBuilder.setChannelId(channelId1);
        }


        Intent ii = new Intent(context, NotificationHandler.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, ii, 0);

        NotificationCompat.BigTextStyle bigText = new NotificationCompat.BigTextStyle();
        bigText.bigText(name   " sent you a message!");
        bigText.setBigContentTitle(name);
        bigText.setSummaryText(message);

        mBuilder.setContentIntent(pendingIntent);
        mBuilder.setSmallIcon(R.drawable.ic_logo_small);
        mBuilder.setContentTitle(name);
        mBuilder.setContentText(message);
        mBuilder.setPriority(Notification.PRIORITY_MAX);
        mBuilder.setStyle(bigText);

        mNotificationManager1.notify(notificationNumber, mBuilder.build());

        SharedPreferences.Editor editor = prefs.edit();
        notificationNumber  ;
        editor.putInt("notificationNumber", notificationNumber);
        editor.commit();
    }
 

Я использовал общие настройки для отслеживания количества моих уведомлений, так что каждое сообщение суммируется с предыдущим. Хотя не отображается даже 1 уведомление.

Ответ №1:

Сколько раз вы вызываете метод createMessage? Предполагается, что этот код вызывается только один раз для вашего приложения:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
        {
            String channelId1 = "Finderr_channel_id1";
            NotificationChannel channel = new NotificationChannel(
                    channelId1,
                    "Finderr Message",
                    NotificationManager.IMPORTANCE_DEFAULT);
            mNotificationManager1.createNotificationChannel(channel);
            mBuilder.setChannelId(channelId1);
        }
 

Также я могу сказать, что у меня были некоторые проблемы с устройствами Samsung, когда мое приложение пыталось запустить службу переднего плана с постоянным уведомлением. Смотрите dontkillmyapp.com для получения подробной информации