Nano Hash - криптовалюты, майнинг, программирование

Как показать уведомление, как музыкальный проигрыватель, на экране блокировки в Android Oreo?

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

Этот код работает на устройстве Motorola, но не работает на устройстве MI.

Вот код: -

private fun showNotification() {
    val mNotificationManager = this.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    val contentView = RemoteViews(packageName, R.layout.layout_notification)
    contentView.setTextViewText(R.id.tvTitleKey, "Test")
    contentView.setTextViewText(
        R.id.tvTitleText,
        "Hello Testing"
    )

    val mBuilder = NotificationCompat.Builder(this, "channel_01")
        .setSmallIcon(R.drawable.ic_launcher_background)
        .setOngoing(true)
        .setAutoCancel(true)
        .setShowWhen(true)
        .setChannelId("channel_01")
        .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
        .setContent(contentView)
        .setStyle(androidx.media.app.NotificationCompat.MediaStyle())

    val notification = mBuilder.build()
    notification.flags = notification.flags or Notification.FLAG_ONGOING_EVENT
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        val name = getString(R.string.app_name)
        val mChannel = NotificationChannel("channel_01", name, NotificationManager.IMPORTANCE_HIGH)
        mChannel.lockscreenVisibility = NotificationCompat.VISIBILITY_PUBLIC
        mBuilder.setChannelId(CHANNEL_ID)
        mNotificationManager.createNotificationChannel(mChannel)
        mNotificationManager.notify(10, notification) //0 = ID of notification
    } else {
        mNotificationManager.notify(10, notification) //0 = ID of notification
    }
}

а вот файл макета layout_notification.xml

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="8dp">

<ImageView
        android:id="@+id/ivQR"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_centerVertical="true"
        android:layout_margin="8dp"
        android:src="@drawable/ic_launcher_background"
        android:scaleType="fitXY"/>
<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_centerVertical="true"
        android:layout_toEndOf="@+id/ivQR">
    <TextView
            android:id="@+id/tvTitleKey"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="10dp"
            android:textSize="18dp"/>

    <TextView
            android:id="@+id/tvTitleText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="10dp"
            android:textSize="18sp"/>

</LinearLayout>


  • попробуйте этот stackoverflow.com/q/23443946/5773037 :) 24.05.2019
  • @NikunjParadiva Я пытался, братан. но никакого эффекта. 24.05.2019
  • @NikunjParadiva Я не разрабатываю музыкальный проигрыватель, как это приложение. У меня другое требование. Я просто хочу показать изображение и текст в уведомлении. 24.05.2019
  • @NikunjParadia да, я проверил эту ссылку и сделал все то же самое, чтобы создать уведомление и его работу в Motorola. но не работает в МИ. 24.05.2019
  • использовать при идущем уведомлении yourNotification.flags = Notification.FLAG_ONGOING_EVENT; 24.05.2019
  • @JainilPatel уже добавлен. 24.05.2019

Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..