فهرست آموزش برنامه نویسی اندروید

Push Notification اندروید

۱۳۹۸/۰۸/۲۶ ۳۴

Notification یک پیامی است که می توانید به کاربرهای خارج از برنامه نمایش دهید. شما می توانید در اندروید Notification های مربوط به خود را به راحتی ایجاد کنید.اندروید کلاس NotificationManager را برای این هدف ارائه می دهد. برای استفاده از این کلاس ،باید با درخواست سیستم اندروید از طریق متد (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 را به عنوان یک پارامتر به وسیله ی  context و intent ارسال کنید. با ارائه ی PendingIntent به یک برنامه ی دیگر، حق اجرای عملکرد مشخص شده ای را به آن برنامه می دهید مثل اینکه آن برنامه، برنامه ی خودتان است.

 

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

 

و آخرین کاری که باید انجام دهید فراخوانی متد setLatestEventInfoاز کلاس Notification و ارسال intent معلق همراه با شئ notification و اجزای بدنه می باشد. ترکیب آن به شکل زیر می باشد:

 

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

 

علاوه بر متد notify، متد های دیگری در کلاس NotificationManager وجود دارند که لیست آنها در زیر ارائه شده است.

شماره متد و  توضیحات
۱ cancel(int id)

این متد Notification نمایش داده شده پیشین را کنسل می کند.

۲ cancel(String tag, int id)

این متد هم Notification نمایش داده شده پیشین را کنسل می کند.

۳ cancelAll()

این متد همه ی Notification های نمایش داده شده پیشین را کنسل می کند.

۴ notify(int id, Notification notification)

این متد یک Notification را برای نمایش در status bar  پست می کند.

۵ notify(String tag, int id, Notification notification)

این متد هم یک Notification را برای نمایش در status bar  پست می کند.

مثال

این مثال استفاده از کلاس NotificationManager را توضیح می دهد. این مثال برنامه پایه ای ایجاد می کند که به شما اجازه می دهد تا یک Notification درست کنید.

برای انجام این مثال لازم است آن را روی یک دستگاه واقعی یا روی یک شبیه ساز اجرا کنید.

مرحله توضیحات
۱ برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان Notification به عنوان بسته ی com.PRG.Notification نام گذاری کنید.
۲  فایل src/MainActivity.java را برای افزودن کد Notification  تغییر دهید.
۳ لایه ی  XML فایل res/layout/activity_main.xml را تغییر داده و اگر لازم است مولفه ی GUI  به آن اضافه کنید.
۴ برنامه را اجرا کنید و یک دستگاه اجرایی اندروید انتخاب کرده و برنامه را روی آن نصب کنید و نتایج را بررسی کنید.

در اینجا محتوای MainActivity.java را می بینید.

 

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>

 

اجازه بدهید برنامه ی TextToSpeech شما را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکن RunEclipse Run Icon از تولبار کلیک کنید. قبل از شروع برنامه شما، Eclipse پنجره ی زیر را برای انتخاب گزینه محل اجرای برنامه ی اندرویدتان، نمایش خواهد داد.

Android Push Notification Tutorial

اکنون فیلد را با تیتر، موضوع و بدنه پر کنید، همان طور که در تصویر زیر می بینید.

Android Push Notification Tutorial

اکنون روی دکمه ی notify کلیک کنید، پس از آن یک اخطاریه در قسمت بالای notification bar خواهید دید، درست مانند تصویر زیر

Android Push Notification Tutorial

حال notification bar را به سمت پایین اسکرول کرده و اخطاریه را ببینید، که در تصویر زیر نمایش داده شده است.

Android Push Notification Tutorial

دانشجویار نماد اعتماد به دانشجویار مجوز نشر دیجیتال لوگو شرکت به پرداخت ملت logo-samandehi مجوز سازمان فنی حرفه ای کشور