كيفاش تصيفط notification من التطبيق ديالك بأندرويد


فهاد الدرس الجديد والبسيط من سلسلة أندرويد غادي نشوفو كيفاش نصيفطو notification للمستخدم ديال التطبيق ديالنا بطريقة بسيطة فهنا مغاديش يكون تطبيق كامل فغادي نركزو فقط على إرسال الإشعار للمستخدم ديالنا.

نظرة سريعة بالفيديو

1- الملف activity_main.xml

فأول حاجة غادي نديرو غادي نزيدو project جديد ف android studio سميه AndroidNotification او لي بغيتي ختار Basic Activity من بعد ميتزاد غادي تمشي للمجلد res/layout فيه كاين ملف سميتو activity_main.xml هادا هو الملف ديال الصفحة الرئيسية ديالنا فيه Bouton ملي كنكليكي عليها كيترسل notification الكود ديال 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: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="com.example.belasri.androidnotification.MainActivity">
    <Button
        android:id="@+id/button"
        android:text="Click"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>
                            

2- الملف MainActivity.java

فالمجلد java كاين الملف MainActivity.java لي هو الملف الرئيسي ديالنا فكنسترجع ل bouton من الملف activity_main.xml  منبعد كاين الكود لي كيمكني ملي كنكليكي عليها  نمشي لل service MyService لي غادي نزيدوه من بعد وغادي يمكن من إرسال notification الكود ديال الملف هو:

                                package com.example.belasri.androidnotification;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,MyService.class);
                intent.putExtra(MyService.MESSAGE,"Notification service.");
                startService(intent);
            }
        });
    }
}

                            

3- الملف MyService.java

كنمشي للمجلد java ول package com.example وكنزيد ملف جديد ب كليك بليمن ديال la souris من بعد كنختار service من بعد IntentService ملي كيتزاد كنزيد فيه الكود التالي فأولا كنديكلاري لميساج لي بغيت يتعرض من بعد عندنا onHandleIntent  لي كتنتظر 5 ديال الثواني عاد من بعد كتستقبل الميساج لي جانا من MainActivity.java وكتعطيه للmethode showMessage لي كنديكلاري فيها الnotification وكنعطيها ل icon وtitre و contenu ديالها بالإضافة للصوت لي تدير باش تنبه المستخدم وكنرسلها الكود ديال الملف هو : 

                                package com.example.belasri.androidnotification;

import android.app.IntentService;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.TaskStackBuilder;
import android.content.Context;
import android.content.Intent;

public class MyService extends IntentService {
    public static final String MESSAGE = "Nouveau Message";
    public static final int MESSAGE_ID = 134;
    public MyService() {
        super("MyService");
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        synchronized (this){
            try{
                wait(5000);
            }catch(InterruptedException e){
                e.printStackTrace();
            }
        }
        String message = intent.getStringExtra(MESSAGE);
        showMessage(message);
    }
    private void showMessage(String message) {
        Intent intent = new Intent(this,MainActivity.class);
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
        stackBuilder.addParentStack(MainActivity.class);
        stackBuilder.addNextIntent(intent);
        PendingIntent pendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
        Notification notification = new Notification.Builder(this)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle("Nouveau message")
                .setAutoCancel(true)
                .setPriority(Notification.PRIORITY_MAX)
                .setDefaults(Notification.DEFAULT_VIBRATE)
                .setDefaults(Notification.DEFAULT_SOUND)
                .setContentText(message)
                .build();
        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(MESSAGE_ID,notification);
    }
}

                            


إشترك في قناتنا على اليوتيوب

بحث في الموقع


إشترك للتوصل بالجديد