میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

پیاده سازی notification در اندروید

با سلام این آموزش نحوه پیاده سازی notification در اندروید را به شما دوستان آموزش خواهد داد

در سیستم عامل اندروید توسعه دهنده قادر است با استفاده از notification هشدارهای سیستمی یا مربوط به اپلیکیشن را به کاربر نمایش دهد.

اندروید به شما این امکان را می دهد تا notification ها را داخل titlebar اپلیکیشن خود نمایش دهید. کاربر می تواند بر روی notification تپ کرده، آن را باز نماید. سپس با انتخاب ،notification یک activity و صفحه ی جدید را به اجرا در بیاورد.

از آنجایی که notification ها کیفیت تجربه ی کاربری را پایین آورده و کمی آزار دهنده هستند، کاربر این اجازه را دارد که notification های اپلیکیشن مربوطه را غیرفعال نماید. برای نیل به این هدف، کافی است کاربر به بخش تنظیمات/ Settings اپلیکیشن در دستگاه اندروید مراجعه کند. پس از انتخاب گزینه Apps در ،Settings کاربر اپلیکیشنی که می خواهد notification های آن را غیر فعال کند، انتخاب نموده و تیک چک باکس show notifications اپلیکیشن مرتبط را برمی دارد.

پیاده سازی notification
پیاده سازی notification

 


تنظیم و مقدار دهی notificationها

برای ساخت و نمایش notification در اندروید از کلاس Notification استفاده می شود.
نحوه ی ساخت notification در اندروید:

به منظور مقداردهی و تنظیم notification از کلاس NotificationManager استفاده می شود. این کلاس با فراخوانی متد getSystemService() از Context قابل بازیابی می باشد.

 

NotificationManager notificationManager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);

Notification.Builder یک interface جهت ساخت و مقداردهی آبجکت های لازم از کلاس Notification در اختیار توسعه دهنده قرار می دهد.
می توانید با استفاده از آبجکت ،PendingIntent عملیاتی که پس از انتخاب notification باید اجرا شود را تعیین نمایید.
Notification.Builder به شما این امکان را می دهد که تا ۳کنترل دکمه با رفتار ( )action دلخواه به notification اضافه نمایید.

 

// prepare intent which is triggered if the
// notification is selected
Intent intent = new Intent(this, NotificationReceiver.class);
// use System.currentTimeMillis() to have a unique ID for the pending intent
PendingIntent pIntent = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), intent, 0);
// build notification
// the addAction re-use the same intent to keep the example short
Notification n = new Notification.Builder(this)
.setContentTitle("New mail from " + "test@gmail.com")
.setContentText("Subject")
.setSmallIcon(R.drawable.icon)
.setContentIntent(pIntent)
.setAutoCancel(true)
.addAction(R.drawable.icon, "Call", pIntent)
.addAction(R.drawable.icon, "More", pIntent)
.addAction(R.drawable.icon, "And more", pIntent).build();
NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, n);
پیاده سازی notification
پیاده سازی notification

 

ویرایش ۴٫۱ اندروید به کاربران این امکان را می دهد تا notification ها را باز کرده و جزئیات بیشتری را مشاهده نمایند. در واقع از ورژن ذکر شده به بعد علاوه بر نمای ( view ) معمولی ،notification نمای بزرگی نیز تعبیه شده که به هنگام باز شدن notification فراخوانی می شود.

برای طراحی ظاهر notification سه style قابل گزینش می باشد

big picture style -1

big text style -2

Inbox style -3

کد زیر استفاده از متد () BigTextStyle را به نمایش می گذارد که تا ۲۵۶dp از کل نمایشگر را به notification اختصاص می دهد.

 

String longText = "...";
Notification noti = new Notification.Builder(this).
.....
.setStyle(new Notification.BigTextStyle().bigText(longText))

 

پیاده سازی notification
پیاده سازی notification

لغو کردن notification ها

کاربر می تواند تمامی notificationها را لغو کند. چنانچه توسعه دهنده notification را بر روی auto-cancel تنظیم کرده باشد، آنگاه به هنگام انتخاب کاربر، notification از نمایشگر حذف می شود.
می توانید ID یا شناسه ی منحصربفرد Notification را به عنوان پارامتر به متد () cancel پاس داده و آن را بر روی آبجکت NotificationManager فراخوانی نمایید. با فراخوانی متد ()cancelAll ، تمامی notification هایی که قبلا صادر کرده بودید، حذف می شوند.

 


تمرین NotificationManager

یک پروژه و activity جدید به ترتیب به نام های de.vogella.android.notificationmanager  و CreateNotificationActivity ایجاد نمایید. activity برای تنظیم ظاهر خود بایستی فایل main.xml را فراخوانی کند.

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:onClick="createNotification"
android:text="Create Notification" >
</Button>
</LinearLayout>

فایل result.xml را با محتوای زیر ایجاد نمایید.

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is the result activity opened from the notification" >
</TextView>
</LinearLayout>

اکنون کلاس activity دیگری به نام NotificationReceiverActivity ایجاد کرده و بدنه ی آن را به صورت زیر تنظیم نمایید. به یاد داشته باشید که activity مربوطه را حتما داخل فایل تنظیمات AndroidManfest.mf تعریف کنید

 

package de.vogella.android.notificationmanager;
import android.app.Activity;
import android.os.Bundle;
public class NotificationReceiverActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
}
}

پیاده سازی کلاس CreateNotificationActivity را به صورت زیر ویرایش نمایید.

 

package de.vogella.android.notificationmanager;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class CreateNotificationActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void createNotification(View view) {
// Prepare intent which is triggered if the
// notification is selected
Intent intent = new Intent(this, NotificationReceiverActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), intent, 0);
// Build notification
// Actions are just fake
Notification noti = new Notification.Builder(this)
.setContentTitle("New mail from " + "test@gmail.com")
.setContentText("Subject").setSmallIcon(R.drawable.icon)
.setContentIntent(pIntent)
.addAction(R.drawable.icon, "Call", pIntent)
.addAction(R.drawable.icon, "More", pIntent)
.addAction(R.drawable.icon, "And more", pIntent).build();
NotificationManager notificationManager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
// hide the notification after its selected
noti.flags |= Notification.FLAG_AUTO_CANCEL;
notificationManager.notify(0, noti);
}
}

 

اپلیکیشن خود را اجرا کرده و کنترل دکمه را فشار دهید. یک notification جدید ایجاد شده که با انتخاب آن، activity و پنجره ی جدید در نمایشگر باز می شود.

 

 


امیدواریم آموزش سرویس های اختصاصی در اندروید نیز برای شما مفید واقع شده باشد و ادامه آموزش برنامه نویسی اندروید رو دنبال کنید . برای مطالعه پست‌ها بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟