Учебники

Android — Push-уведомление

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

Android предоставляет для этого класс NotificationManager . Чтобы использовать этот класс, вам нужно создать экземпляр объекта этого класса, запросив систему Android через метод getSystemService () . Его синтаксис приведен ниже —

NotificationManager NM;
NM=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

После этого вы создадите Notification через класс Notification и укажите его атрибуты, такие как значок, заголовок, время и т. Д. Его синтаксис приведен ниже —

Notification notify = new Notification(android.R.drawable.stat_notify_more,title,System.currentTimeMillis());

Следующее, что вам нужно сделать, это создать PendingIntent , передав контекст и намерение в качестве параметра. Передав PendingIntent другому приложению, вы предоставляете ему право выполнять указанную вами операцию, как если бы другое приложение было вами.

PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(),0);

Последнее, что вам нужно сделать, это вызвать метод setLatestEventInfo класса Notification и передать ожидающее намерение вместе с темой уведомления и подробностями тела. Его синтаксис приведен ниже. И, наконец, вызвать метод notify класса NotificationManager.

notify.setLatestEventInfo(getApplicationContext(), subject, body,pending);
NM.notify(0, notify);		

Помимо метода notify, в классе NotificationManager доступны и другие методы. Они перечислены ниже —

Sr.No Метод и описание
1

отменить (int id)

Этот метод отменяет ранее показанное уведомление.

2

отмена (строковый тег, int id)

Этот метод также отменяет ранее показанное уведомление.

3

cancelAll ()

Этот метод отменяет все ранее показанные уведомления.

4

notify (int id, Notification Notification)

Этот метод отправляет уведомление, которое будет отображаться в строке состояния.

5

notify (строковый тег, int id, уведомление)

Этот метод также опубликовать уведомление, которое будет отображаться в строке состояния.

отменить (int id)

Этот метод отменяет ранее показанное уведомление.

отмена (строковый тег, int id)

Этот метод также отменяет ранее показанное уведомление.

cancelAll ()

Этот метод отменяет все ранее показанные уведомления.

notify (int id, Notification Notification)

Этот метод отправляет уведомление, которое будет отображаться в строке состояния.

notify (строковый тег, int id, уведомление)

Этот метод также опубликовать уведомление, которое будет отображаться в строке состояния.

пример

В приведенном ниже примере демонстрируется использование класса NotificationManager. Это базовое приложение, которое позволяет создавать уведомления.

Чтобы поэкспериментировать с этим примером, вам нужно запустить его на реальном устройстве или в эмуляторе.

меры Описание
1 Вы будете использовать Android studio для создания приложения Android в приложении packagecom.example.sairamkrishna.my.
2 Измените файл src / MainActivity.java, чтобы добавить код уведомления.
3 Измените XML-файл макета. Res / layout / activity_main.xml добавьте любой компонент GUI, если это необходимо.
4 Запустите приложение и выберите работающее устройство Android, установите на него приложение и проверьте результаты.

Вот содержание MainActivity.java .

В следующем коде abc указывает логотип tutorialspoint.com

package com.example.sairamkrishna.myapplication;

import android.app.Notification;
import android.app.NotificationManager;

import android.content.Context;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;

import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends ActionBarActivity {
   EditText ed1,ed2,ed3;
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      ed1=(EditText)findViewById(R.id.editText);
      ed2=(EditText)findViewById(R.id.editText2);
      ed3=(EditText)findViewById(R.id.editText3);
      Button b1=(Button)findViewById(R.id.button);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            String tittle=ed1.getText().toString().trim();
            String subject=ed2.getText().toString().trim();
            String body=ed3.getText().toString().trim();

            NotificationManager notif=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
            Notification notify=new Notification.Builder
               (getApplicationContext()).setContentTitle(tittle).setContentText(body).
               setContentTitle(subject).setSmallIcon(R.drawable.abc).build();
                
               notify.flags |= Notification.FLAG_AUTO_CANCEL;
               notif.notify(0, notify);
         }
      });
   }
}

Вот содержание 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: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" tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Notification"
      android:id="@+id/textView"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp" />
      .
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textSize="35dp"
      android:textColor="#ff16ff01" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText"
      android:layout_below="@+id/textView2"
      android:layout_alignLeft="@+id/textView2"
      android:layout_alignStart="@+id/textView2"
      android:layout_marginTop="52dp"
      android:layout_alignRight="@+id/textView2"
      android:layout_alignEnd="@+id/textView2"
      android:hint="Name" />
   
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText2"
      android:hint="Subject"
      android:layout_below="@+id/editText"
      android:layout_alignLeft="@+id/editText"
      android:layout_alignStart="@+id/editText"
      android:layout_alignRight="@+id/editText"
      android:layout_alignEnd="@+id/editText" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:inputType="textPersonName"
      android:ems="10"
      android:id="@+id/editText3"
      android:hint="Body"
      android:layout_below="@+id/editText2"
      android:layout_alignLeft="@+id/editText2"
      android:layout_alignStart="@+id/editText2"
      android:layout_alignRight="@+id/editText2"
      android:layout_alignEnd="@+id/editText2" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Notification"
      android:id="@+id/button"
      android:layout_marginTop="77dp"
      android:layout_below="@+id/editText3"
      android:layout_alignRight="@+id/textView"
      android:layout_alignEnd="@+id/textView" />

</RelativeLayout>

Вот содержимое AndroidManifest.xml .

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

Давайте попробуем запустить наше приложение. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». Eclipse Run Icon значок из панели инструментов. Перед запуском приложения Android Studio отобразит следующее окно, чтобы выбрать опцию, в которой вы хотите запустить приложение Android.

Руководство по push-уведомлениям для Android

Теперь заполните поле заголовком, темой и телом. Это было показано ниже на рисунке —

Руководство по push-уведомлениям для Android

Теперь нажмите на кнопку уведомления, и вы увидите уведомление в верхней панели уведомлений. Это было показано ниже —

Руководство по push-уведомлениям для Android

Теперь прокрутите вниз панель уведомлений и увидите уведомление. Это было показано ниже на рисунке —