Как звонить в бдительность или извещение для пользователя в приложении Android?

Как звонить в описание или для извещения пользователя в приложении для Android?

Проблема - следующая:

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

Как делать бдительность этого типа в приложении для Android?

1
задан 26.07.2017, 03:35
2 ответа

Toast не может считаться especifícamente как бдительность, в действительности он, как он комментируется в документации:

Toast предоставляет простую информацию относительно операции в возникающем окне.

Это маленький пример:

Toast.makeText(getActivity(), "Este es mi mensaje Toast!!! =)",
   Toast.LENGTH_LONG).show();

В котором мы можем определять две постоянные величины, которые определяют продолжительность службы toast.

LENGTH_LONG Покажи вид или notification на длинный период времени.

LENGTH_SHORT Покажи вид или notification на короткий период времени.

Другой выбор состоит в том, чтобы реализовывать персонализированный Toast:

LayoutInflater myInflater=LayoutInflater.from(this);
View view=myInflater.inflate(R.layout.your_custom_layout,null);
Toast mytoast=new Toast(this);
mytoast.setView(view);
mytoast.setDuration(Toast.LENGTH_LONG);
mytoast.show();

Извещение или бдительность могла бы быть сходной с Пус Нотификатион.

Для примера, я создал метод, с которым ты можешь создавать вышеупомянутое извещение, также добавляю, как создание PendingIntent для того, чтобы он смог получать Url, которая открылась бы, дав клик в извещении:

public static void creaNotificacion(long when, String notificationTitle,
                                      String notificationContent, String notificationUrl, Context ctx) {
    try {

        Intent notificationIntent;


        Bitmap largeIcon = BitmapFactory.decodeResource(ctx.getResources(),
                R.drawable.ic_launcher);
        int smalIcon = R.drawable.ic_launcher;

        /* Valida la url y crea un Intent */
        if (!"".equals(notificationUrl)) {
            notificationIntent = new Intent(Intent.ACTION_VIEW,
                    Uri.parse(notificationUrl));
        } else {
            notificationIntent = new Intent();
        }

        /* Crea PendingIntent */
        PendingIntent pendingIntent = PendingIntent.getActivity(ctx, 0,notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);


        NotificationManager notificationManager = (NotificationManager) ctx
                .getSystemService(Context.NOTIFICATION_SERVICE);

        /* Construye la notificacion */
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(
                ctx).setWhen(when).setContentText(notificationContent)
                .setContentTitle(notificationTitle).setSmallIcon(smalIcon)
                .setAutoCancel(true).setTicker(notificationTitle)
                .setLargeIcon(largeIcon)
                .setContentIntent(pendingIntent);

        notificationManager.notify((int) when, notificationBuilder.build());

    } catch (Exception e) {
        Log.e("Notificacion", "createNotification::" + e.getMessage());
    }

}

и это пример, как называть метод, чтобы создавать извещение, было бы способом это реализовывать, когда пользователь выбрал определенную команду, извещение появится:

creaNotificacion(0,"Notificación Android!","Como llamar a una alerta o notificación para el usuario en la aplicación de Android?", "http://es.stackoverflow.com", getApplicationContext());

introducir la descripción de la imagen aquí

Открыв извещение с бруска извещений и ты можешь выполнять действие посредством PendingIntent, в этом случае он откроет определенный url!

introducir la descripción de la imagen aquí

3
ответ дан 24.11.2019, 14:22

Для быстрой и краткой бдительности, мы можем использовать Toasts:

toast он позволяет ему показывать короткого и быстрого для сообщения пользователя (только он используется с текстом).

Давайте брать пример приложения:

В моем прикладном пакете br.com.toasts, файл MainActivity.java:

package br.com.toasts;

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
    }

    public void notify1(View v) {
        Toast t = Toast.makeText(this, "Aviso!", Toast.LENGTH_SHORT);
        t.show();
    }

    public void notify2(View v) {
        Toast t = Toast.makeText(this, "Aviso!", Toast.LENGTH_SHORT);
        t.setGravity(Gravity.CENTER, 0, 0);
        t.show();
    }

    public void notify3(View v) {
        Toast t = new Toast(this);
        t.setGravity(Gravity.CENTER,0, 0);

        View view = getLayoutInflater().inflate(R.layout.toast, null);
        TextView textView = (TextView) view.findViewById(R.id.txt_toast);

        textView.setText("Aviso!");

        t.setView(view);
        t.show();
    }
}

В carpeta layout > Я храню в архиве activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="horizontal"
    style="?android:attr/buttonBarStyle"
    tools:context=".MainActivity">

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="notify1"
        android:text="@string/btn_toast1"
        style="?android:attr/buttonBarButtonStyle"/>

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="notify2"
        android:text="@string/btn_toast2"
        style="?android:attr/buttonBarButtonStyle"/>

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="notify3"
        android:text="@string/btn_toast3"
        style="?android:attr/buttonBarButtonStyle"/>

</LinearLayout>

В carpeta layout > Я храню в архиве toast.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:background="#FFFF00"
    android:padding="10dp" >

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:src="@android:drawable/ic_dialog_alert"
        tools:ignore="ContentDescription" />

    <TextView
        android:id="@+id/txt_toast"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:gravity="center_vertical"
        android:layout_marginStart="10dp"
        android:textStyle="bold"
        style="?android:attr/textAppearanceMedium" />

</LinearLayout>

В carpeta values > Я храню в архиве strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Toast</string>
    <string name="btn_toast1">Toast 1</string>
    <string name="btn_toast2">Toast 2</string>
    <string name="btn_toast3">Toast 3</string>
</resources>

В этом приложении примера, есть три типа бдительности, как в нижнем изображении:

2
ответ дан 24.11.2019, 14:22

Теги

Похожие вопросы