web-dev-qa-db-ja.com

Android:グループ化された通知と要約は4.4以降でも引き続き個別に表示されます

実装したい 積み重ねた通知Android Wear これを行うには、各「アイテム」に対して1つの要約通知とN個の個別の通知を作成します。要約のみを作成します。電話に表示されますこれが私のコードです

private void showNotifications() {
    NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    showNotification1(notificationManager);
    showNotification2(notificationManager);
    showGroupSummaryNotification(notificationManager);
}

private void showNotification1(NotificationManager notificationManager) {
    showSingleNotification(notificationManager, "title 1", "message 1", 1);
}

private void showNotification2(NotificationManager notificationManager) {
    showSingleNotification(notificationManager, "title 2", "message 2", 2);
}

protected void showSingleNotification(NotificationManager notificationManager,
                                      String title,
                                      String message,
                                      int notificationId) {
    NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    builder.setContentTitle(title)
            .setContentText(message)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setGroupSummary(false)
            .setGroup("group");
    Notification notification = builder.build();
    notificationManager.notify(notificationId, notification);
}

private void showGroupSummaryNotification(NotificationManager notificationManager) {
    NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    builder.setContentTitle("Dummy content title")
            .setContentText("Dummy content text")
            .setStyle(new NotificationCompat.InboxStyle()
                    .addLine("Line 1")
                    .addLine("Line 2")
                    .setSummaryText("Inbox summary text")
                    .setBigContentTitle("Big content title"))
            .setNumber(2)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setCategory(Notification.CATEGORY_EVENT)
            .setGroupSummary(true)
            .setGroup("group");
    Notification notification = builder.build();
    notificationManager.notify(123456, notification);
}

これはAndroid 5.1で正常に機能し、電話の通知バーには概要のみが表示されます。

enter image description here

ただし、Android 4.4では、個別の通知1および2も表示されます。

enter image description here

どちらの場合でも、Android Wearは必要に応じてスタックに表示されます。Android 4.4通知バーに要約通知のみを表示するにはどうすればよいですか?

37

を使用してこれを修正しました

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);

の代わりに

NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

対応するメソッドシグネチャでNotificationManagerをNotificationManagerCompatに置き換えます。

19

showSingleNotificationメソッドを削除して置き換えるだけです

notificationManager.notify(123456, notification); 

notificationManager.notify(123456, builder); 

そしてその仕事はうまくいきました。

0
user11834696