Cree una notificación expandible que contenga algo de texto en Android

La notificación es un tipo de mensaje que genera cualquier aplicación presente dentro del teléfono móvil, sugiriendo verificar la aplicación y esto puede ser desde una actualización (notificación de baja prioridad) hasta algo que no va bien en la aplicación (notificación de alta prioridad) . en Algunos ejemplos de la vida diaria podrían ser las notificaciones adjuntas por Whatsapp, Gmail, SMS, etc. en el cajón de notificaciones, donde el usuario puede expandirlo y encontrar algunos detalles sobre el mensaje recibido, como el nombre del remitente, el asunto y alguna parte del texto. en el caso de Gmail. En este artículo, vamos a crear una notificación dentro de una aplicación que contenga algo de texto.

expandable notification

Acercarse

Paso 1: Crear un nuevo proyecto 

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio.

Paso 2: modificar el archivo activity_main.xml

Dentro del archivo XML, simplemente agregue un botón, que al hacer clic crearía una notificación expandible. Al expandir la notificación desde el cajón de notificaciones, se mostraría algo de texto.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="click"
        android:layout_centerInParent="true"/>
  
</RelativeLayout>

Paso 3: modificar el archivo MainActivity

Ahora, mire el código a continuación que está en Kotlin. Crear una notificación

MainActivity.kt

package com.example.expandable_notification_bigtext
  
import android.app.*
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import androidx.annotation.RequiresApi
import androidx.core.app.NotificationManagerCompat
  
class MainActivity : AppCompatActivity() {
  
    // Assigning variables to Notification Manager, Channel and Builder
    lateinit var notifManager : NotificationManager
    lateinit var notifChannel : NotificationChannel
    lateinit var notifBuilder : Notification.Builder
      
    // Evaluating ChannelID and Description for the Custom Notification
    private val description = "Some Description"
    private val channelID = "Some Channel ID"
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring the button which onclick generates a notification
        val btn = findViewById<Button>(R.id.btn)
  
        // Notification Service for the Manager
        notifManager = getSystemService(Context.NOTIFICATION_SERVICE) 
        as NotificationManager
  
        // Notifications are in the form of Intents
        val someintent = Intent(this,LauncherActivity::class.java)
        val pendingIntent = PendingIntent.getActivity(this,0,someintent,
        PendingIntent.FLAG_UPDATE_CURRENT)
  
        // Idea is to click the button and the notification appears
        btn.setOnClickListener {
          
        // Declaring a message (string) to be displayed 
        // in the notification
        val message = "Some random text for testing purpose" +
                      "Some day you will be" +
                         "reading this" +
                      "and by the time, it'll be too late" +
                      "to confess everything."
          
            // If Min. API level of the phone is 26, then notification could be 
            // made asthetic
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                notifChannel = NotificationChannel(channelID,description,
                NotificationManager.IMPORTANCE_HIGH)
                notifChannel.enableLights(true)
                notifChannel.lightColor = Color.RED
                notifChannel.enableVibration(true)
  
                notifManager.createNotificationChannel(notifChannel)
  
                notifBuilder = Notification.Builder(this,channelID)
                        .setContentTitle("Some Title")
                        .setContentText("Some Content Text")
                        .setSmallIcon(R.mipmap.ic_launcher_round)
                          
                        // Command to Insert a message in the Notification
                        .setStyle(Notification.BigTextStyle()// <-- Look here
                        .bigText(message))// <---- Look here
                          
                          
                        .setContentIntent(pendingIntent)
            }
            // Else the Android device would give out default UI attributes
            else{
                notifBuilder = Notification.Builder(this)
                        .setContentTitle("Some Title")
                        .setContentText("Some Content Text")
                        .setContentIntent(pendingIntent)
            }
              
            // Everything is done now and the Manager is to be notified about 
            // the Builder which built a Notification for the application
            notifManager.notify(1234,notifBuilder.build())
        }
    }
}

Nota: si ha buscado previamente el código para notificaciones expandibles, entonces debe haber visto esta línea de código en particular:

“.setStyle(NotificationCompat.BigTextStyle().bigText(mensaje)”

Como «NotificationCompat» está actualmente en desuso y su código siempre se bloquea cada vez que se intenta generar una notificación (al hacer clic en el botón en nuestro caso). En su lugar, simplemente use «Notificación».

Salida: ejecutar en el emulador

Publicación traducida automáticamente

Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *