آموزش اندروید پیشرفته – نحوه ارسال اعلان توسط یک اپلیکیشن اندرویدی

 نمونه‌ای از اعلان‌ها در سیستم عامل اندروید
نمونه‌ای از اعلان‌ها در سیستم عامل اندروید


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

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

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

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

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

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

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

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

در این مطلب قصد داریم به تعدادی از مباحث پیشرفته برنامه نویسی اندروید بپردازیم. بنابراین مخاطب این مطلب اشخاصی هستند که بر اصول مقدماتی برنامه نویسی اندروید تسلط داشته و توانایی نوشتن برنامه و ساخت یک اپلیکیشن و همچنین کار با اندروید استودیو را دارند.

در ادامه این مطلب به نحوه ساخت و ارسال اعلان توسط یک اپلیکیشن اندرویدی که یکی از مباحث آموزش اندروید پیشرفته است خواهیم پرداخت.

ارسال اعلان

کلاس Toast اندروید، برای ارسال اعلان به کاربران استفاده می‌شود. اما مشکل این است که این اعلان‌ها در یک لحظه روی صفحه گوشی یا تبلت ظاهر شده و سپس ناپدید می‌شوند.

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

نحوه ساخت و ارسال اعلان در اپلیکیشن

قدم اول: ساخت Notification Builder

از Notification Builder برای تعیین مواردی مانند آیکون‌ کوچک اعلان (که در بالای صفحه نمایش خود مشاهده می‌کنید) و آیکون بزرگ اعلان (که با باز کردن نوار اعلان مشاهده خواهید کرد) استفاده می‌شود. ساخت Notification Builder به صورت زیر انجام می‌شود:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)

قدم دوم: تعیین مقادیر مختلف Notification

زمانی که شی Builder ساخته شد، می‌توانیم مقادیر مختلف اعلان را با توجه به نیاز خود تعیین کنیم. لازم است حداقل سه مقدار زیر را تعیین کنیم:

یک آیکون کوچک که توسط متود setSmallIcon تعیین می‌شود

یک عنوان که توسط متود setContentTitle تعیین می‌شود

جزئیات اعلان که توسط متود setContentText تعیین می‌شود

به مثال زیر توجه کنید:

mBuilder.setSmallIcon(R.drawable.notification_icon);

mBuilder.setContentTitle("Notification Alert, Click Me!");

mBuilder.setContentText("Hi, This is Android Notification Detail!");

موارد انتخابی دیگری نیز وجود دارد که می‌توانید برای اعلان خود در نظر بگیرید.

قدم سوم: اضافه کردن یک Action به اعلان

در این قدم می‌توانید یک Action به اعلان خود اضافه کنید. Action به کاربران اجازه می‌دهد تا مستیماً از اعلان به یک Activity در اپلیکیشن شما هدایت شوند. Action توسط یک PendingIntent ساخته می‌شود که حاوی یک Intentاست که Activity خاصی را شروع می‌کند.

برای مرتبط کردن PendingIntent با ژست‌های حرکتی، متود مناسبی از کلاس NotificationCompat.Builder را فراخوانی کنید. برای مثال، اگر می‌خواهید Activity شما با کلیک کردن کاربر روی متن اعلان آغاز به کار کند، باید تود setContentIntent() را فراخوانی کنید.

شی PendingIntent به شما کمک می‌کند تا Actionمورد نظر بدون نگرانی از این که اپلیکیشن در حال اجرا است یا نه، انجام شود.

برای این که مطمئن شویم کاربر پس از بازگشت از Activityمورد نظر به صفحه Homeدستگاه هدایت می‌شود، از شی stack builder استفاده می‌کنیم. به تکه کد زیر نگاه کنید:

Intent resultIntent = new Intent(this, ResultActivity.class);

TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);

stackBuilder.addParentStack(ResultActivity.class);

// Adds the Intent that starts the Activity to the top of the stack

stackBuilder.addNextIntent(resultIntent);

PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);

mBuilder.setContentIntent(resultPendingIntent);

قدم چهارم: فرستادن اعلان

در نهایت، باید شی Notification را با فراخوانی متود NotifiactionManager.notify() به سیستم ارسال کنید تا اعلان شما برای کاربر نمایش داده شود. از فراخوانی متود NotificationCompat.Builder.build() روی شی builder قبل از ارسال اعلان اطمینان حاصل کنید.

این متود تمامی مقادیری که از قبل تعیین کرده‌اید را با هم ترکیب کرده و یک شی Notification جدید را باز می‌گرداند. به کد زیر نگاه کنید:

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

// notificationID allows you to update the notification later on.

mNotificationManager.notify(notificationID, mBuilder.build());

اعلان‌ها به این شکل در تلفن همراه شما نشان داده می‌شوند
اعلان‌ها به این شکل در تلفن همراه شما نشان داده می‌شوند


آشنایی با مهم‌ ترین متود های کلاس NotificatoinCompat.Buider

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

۱. متود ()Notification build:

تمامی موارد تعیین شده برای اعلان را در کنار هم قرار داده و یک شی Notification جدید را باز می‌گرداند.

۲. متود NotificationCompat.Builder setAutoCancel (boolean autoCancel):

ارسال اعلان را با کلیک کاربر روی پنل اعلان متوقف می‌کند

۳. متود NotificationCompat.Builder setContentInfo (CharSequence info):

متن بزرگ اعلان را در سمت راست اعلان قرار می‌دهد

۴. متود NotificationCompat.Builder setContentIntent (PendingIntent intent):

پس از کلیک روی اعلان، یک PendingIndent را برای ارسال فراهم می‌کند

۵. متود NotificationCompat.Builder setContentText (CharSequence text):

خط دوم متن اعلان را تعیین می‌کند

۶. متود NotificationCompat.Builder setContentTitle (CharSequence title):

اولین خط متن اعلان را تعیین می‌کند

۷. متود NotificationCompat.Builder setDefaults (int defaults):

گزینه‌های پیش فرض اعلان که کاربر می‌تواند از آن‌ها استفاده کند را مشخص می‌کند

۸. متود NotificationCompat.Builder setLargeIcon (Bitmap icon):

آیکون بزرگ اعلان را تعیین می‌کند

۹. متود NotificationCompat.Builder setNumber (int number):

عدد بزرگ اعلان را در سمت راست آن قرار می‌دهد

۱۰. متود NotificationCompat.Builder setOngoing (boolean ongoing):

تعیین کننده این که آیا اعلان مورد نظر یک اعلان مداوم است یا نه (یعنی اعلان به صورت مداوم نشان داده شود)

۱۱. متود NotificationCompat.Builder setSmallIcon (int icon):

تعیین کننده آیکون کوچک اعلان

۱۲. متود NotificationCompat.Builder setStyle (NotificationCompat.Style style):

اضافه کردن یک استایل به اعلان در زمان ساخته شدن آن

۱۳. متود NotificationCompat.Builder setTicker (CharSequence tickerText):

متنی که در هنگام نمایش اولیه اعلان در نوار وضعیت پدیدار می‌شود را تعیین می‌کند

۱۴. متود NotificationCompat.Builder setVibrate (long[] pattern):

الگوی لرزش دستگاه هنگام دریافت اعلان را مشخص می‌کند

۱۵. متود NotificationCompat.Builder setWhen (long when):

اعلان‌های اپلیکیشن بر اساس زمان مشخص شده توسط این متود مرتب می‌شوند

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

در مثال پیش رو، با نحوه استفاده از کلاس NotificationCompat.Builder که در اندروید 4.1 معرفی شده آشنا خواهید شد.

ملاحظات مثال پیش رو:

· از اندروید استودیو برای ساخت یک اپلیکیشن استفاده خواهید کرد.

· فایل src/MainActivity.java را ویرایش کرده و کد متود notify(“”) را در آن خواهید نوشت. با کلیک کردن کاربر روی یک دکمه، سرویس اعلان اندروید فراخوانی خواهد شد.

· یک فایل جاوا جدید (src/MainActivity.java) خواهید ساخت که برای نمایش layout استفاده می‌شود. کاربر روی اعلان کلیک کرده و یک Activity آغاز می‌شود. با آغاز شدن Activity، layout مورد نظر نمایش داده خواهد شد.

· فایل res/layout/activity_main.xm را به منظور اضافه کردن دکمه ارسال اعلان ویرایش خواهید کرد.

· یک فایل XML جدید (res/layout/notification.xml) ایجاد خواهید کرد. قرار است با کلیک کردن کاربر روی هر اعلانی یک Activity ایجاد شود. این فایل به عنوان فایل layout برای Activity ایجاد شده استفاده خواهد شد.

کد فایل src/com.example.notificationdemo/MainActivity.java شما به صورت زیر خواهد بود:

package com.example.notificationdemo;

import android.app.Activity;

import android.app.NotificationManager;

import android.app.PendingIntent;

import android.content.Context;

import android.content.Intent;

import android.support.v4.app.NotificationCompat;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class MainActivity extends Activity {

Button b1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

b1 = (Button)findViewById(R.id.button);

b1.setOnClickListener(new View.Listener() {

@Override

public void (View v) {

addNotification();

}

});

}

private void addNotification() {

NotificationCompat.Builder builder =

new NotificationCompat.Builder(this)

.setSmallIcon(R.drawable.abc)

.setContentTitle("Notifications Example")

.setContentText("This is a test notification");

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

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,

PendingIntent.FLAG_UPDATE_CURRENT);

builder.setContentIntent(contentIntent);

// Add as notification

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

manager.notify(0, builder.build());

}

}

کد فایل res/layout/notification.xml نیز به صورت زیر خواهد بود:

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent" >

<TextView

android:layout_width="fill_parent"

android:layout_height="400dp"

android:text="Hi, Your Detailed notification view goes here...." />

</LinearLayout>

کد فایل src/com.example.notificationdemo/NotificationView.java نیز به صورت زیر است:

package com.example.notificationdemo;

import android.os.Bundle;

import android.app.Activity;

public class NotificationView extends Activity{

@Override

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.notification);

}

}

در ادامه آموزش اندروید پیشرفته، باید فایل activity_main را که در آن کدهای مربوط به اکتیویتی اصلی اپلیکیشن شما قرار دارد ویرایش کنید.

کدهای موجود در فایل res/layout/activity_main.xml:

<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: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="MainActivity">

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Notification Example"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:textSize="30dp" />

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Tutorials point "

android:textColor="#ff87ff09"

android:textSize="30dp"

android:layout_below="@+id/textView1"

android:layout_centerHorizontal="true"

android:layout_marginTop="48dp" />

<ImageButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/imageButton"

android:src="@drawable/abc"

android:layout_below="@+id/textView2"

android:layout_centerHorizontal="true"

android:layout_marginTop="42dp" />

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Notification"

android:id="@+id/button"

android:layout_marginTop="62dp"

android:layout_below="@+id/imageButton"

android:layout_centerHorizontal="true" />

</RelativeLayout>

کد موجود در فایل res/values/strings.xml:

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

<resources>

<string name="action_settings">Settings</string>

<string name="app_name">tutorialspoint </string>

</resources>

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

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

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.notificationdemo" >

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name="com.example.notificationdemo.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>

<activity android:name=".NotificationView"

android:label="Details of notification"

android:parentActivityName=".MainActivity">

<meta-data

android:name="android.support.PARENT_ACTIVITY"

android:value=".MainActivity"/>

</activity>

</application>

</manifest>

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

مشاهده جزئیات اعلان
مشاهده جزئیات اعلان


آموزش‌ های پیشرفته را برای تسلط بر برنامه نویسی اندروید تهیه و مشاهده کنید

در این مطلب، مثالی از نحوه ارسال اعلان توسط یک اپلیکیشن اندرویدی ارائه شد. هنوز مباحث پیشرفته زیاد دیگری وجود دارند که می‌توانید آن‌ها را یاد گرفته و یک اپلیکیشن جذاب اندروید را طراحی کنید.

از دیگر مباحث پیشرفته آموزش اندروید می‌توان به موارد زیر اشاره کرد:

· کار با سرویس موقعیت مکانی

· کار با سرویس‌های ایمیل و پیام کوتاه

· کار با مخاطبین موجود در دفترچه تلفن دستگاه اندرویدی

· نحوه استفاده از قابلیت‌های دستگاه اندرویدی نظیر دوربین و میکروفون

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

در همین راستا پیشنهاد می‌کنیم سایر آموزش‌های پیشرفته برنامه نویسی اندروید را در سایت فرادرس مشاهده کنید.

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