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.
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