martes, 6 de junio de 2017

Android Studio - Notificaciones




MainActivity.class
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.View;
import android.widget.Button;


public class MainActivity extends AppCompatActivity {

    private Button boton;
    NotificationCompat.Builder notificacion;
    private static final int idUnica = 51623;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        boton = (Button) findViewById(R.id.boton);

        notificacion = new NotificationCompat.Builder(this);
        notificacion.setAutoCancel(true);


        boton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                notificacion.setSmallIcon(R.mipmap.ic_launcher);
                notificacion.setTicker("Nueva notificacion");
                notificacion.setPriority(Notification.PRIORITY_HIGH);
                notificacion.setWhen(System.currentTimeMillis());
                notificacion.setContentTitle("Titulo");
                notificacion.setContentText("Tutorial Antut Notificaciones");

                Intent intent = new Intent(MainActivity.this,MainActivity.class);

                PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
                notificacion.setContentIntent(pendingIntent);


                NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                nm.notify(idUnica,notificacion.build());

            }
        });



    }
}

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"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.usuario.videotest.MainActivity">


  <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Notificacion"
      android:id="@+id/boton"
      android:layout_centerInParent="true"/>

</RelativeLayout>

6 comentarios:

  1. Muy interesante pero las librerias que utilizas ya están obsoletas :( Actulizalo por favor.

    ResponderBorrar
    Respuestas
    1. Hola, la idea es tomar el código o lo mejor del código y adaptarlo a tu proyecto, no copiar pegar eso te limita a entender como funciona el código y que modificar para que si funcione en tu propio ambiente.

      Borrar
  2. cuando lo compilo me aparece que la app se detuvo, hay alguna forma de arreglarlo por favor :(

    ResponderBorrar
    Respuestas
    1. Hola cuando me ha pasado algo similar, reviso el manifest y valida que estén declarados todos los layout y la actividades, normalmente el error te cierra la App o no pasa a la siguiente actividad.

      Borrar
  3. solo agrgen en Module:appp

    implementation "com.android.support:support-compat:27.1.1"
    VA EN
    dependencies

    ResponderBorrar
  4. RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.notificacion_primaria);

    estoy usando esta clase para pasarle a mi NotificationCompat el problema es que mi layout tiene botones y no se como ponerle eventos a dichos botones agradecería mucho si me ayudaras.

    ResponderBorrar

Android Studio - Como crear un patron de desbloqueo

Librerias : https://github.com/aritraroy/PatternLockView                   https://github.com/pilgr/Paper activity_main.xml ...