Я хочу показать постоянную маленькую иконку в status bar
, не отображая самого уведомления в лотке notification
системы.
Я попытался использовать пользовательский layout
и установить видимость корневого элемента на View.GONE
или View.INVISIBLE
, но для обоих система игнорирует его.
Я также пытался установить высоту корневого элемента, но система также игнорирует это.
Вот мой код:
R.layout.custom_notification
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/custom_notification"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/notif_background"
android:orientation="horizontal"
android:baselineAligned="false"/>
И код для отображения notification
:
NotificationManager nm = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(ctx);
mBuilder
.setSmallIcon(drawableId)
.setAutoCancel(false)
.setOngoing(true)
.setPriority(Notification.PRIORITY_MAX);
Intent resultIntent = new Intent(ctx, SettingsActivity.class);
PendingIntent resultPendingIntent = PendingIntent.getActivity(ctx, 0, resultIntent, 0);
mBuilder.setContentIntent(resultPendingIntent);
int layout = R.layout.custom_notification ;
RemoteViews contentView = new RemoteViews(ctx.getPackageName(), layout);
contentView.setViewVisibility(R.id.custom_notification, View.INVISIBLE);
mBuilder.setContent(contentView);
nm.notify(NOTIFICATION_ID, mBuilder.build());
Я хорошо знаю, что для достижения моей цели мне не нужно документированное решение. И я также знаю, что рекомендации UX настоятельно рекомендуют не делать этого. Поэтому нет смысла писать мне это как ответ.