استخدام الاشعارات في تطبيقات الاندرويد برمجياً by Parse.com

بسم الله الرحمن الرحيم

اليوم إن شاء الله رح نتعلم من هي التدوينة, كيفية إضافة الإشعارات في تطبيقات الاندرويد برمجياً عن طريق استخدام موقع وسيط, وإسمه Parse

موقع جداً مشهور في خدماته التي يقدمها للمبرمجين, ولكن في درس اليوم سوف نتعلم فقط استخدام الاشعارات في تطبيقاتنا, وارسال الاشعارات من لوحة التحكم.

في البداية صديقي قم بالدخول إلى الموقع, بالضغط على https://parse.com/ .

ثم في أعلى الشاشة أضغط على زر التسجيل signup, وضع المعلومات الخاصة بك, وتم التسجيل. بعد تسجيل الدخول, اذهب إلى صفحة التطبيقات https://www.parse.com/apps .

واضغط على إنشاء تطبيق Create a new App , أو اختر تطبيقك إن كنت إضفت تطبيق مسبقاً.  بعد الدخول للتطبيق إضغط على push من القائمة أعلى الشاشة.

سوف تظهر لك رسالة : No push notifications to display yet, في الجهة اليسرى أعلى الشاشة يوجد زر اسمه + Send a push اضغط عليه لإرسال إشعار, سوف تظهر لك رسالة No registered devices .

أي لا يوجد أجهزة مسجلة مسبقاً, إضغط على الزر وسط الشاشة Push Quick Start , سوف تظهر لك رسالة Select an environment لاختيار المنصة الخاصة بتطبيقك, اختر منها Android.

ثم اختر لغة البرمجة Native Java , ثم اختر Existing project .

سوف تظهر لك صفحة لإعداد الـ SDK الخاصة بالموقع داخل تطبيقك الأندرويد, خطوات مرتبة من البداية, إذا كنت من مستخدمين برنامج اكليبس فـ قم بتحميل الـ SDK > Download the SDK . بعد التحميل قم بفك الضغط ونقل كلاً من : bolts-android-*.jar و  Parse-*.jar إلى مجلد “libs” في مشروعك.

أما فـمستخدمين برنامج الأندرويد ستوديو فهم مميزون $: لا تقم بتحميل إي شيء فقط قم بالذهاب إلى ملف build.gradle وإضف بداخله في قسم dependencies السطرين هذه :

compile 'com.parse.bolts:bolts-android:*'
compile 'com.parse:parse-android:*'

المقصود بـ * هو آخر إصدار متوفر …

و الآن نتابع لكلا البرنامجين, والآن إذا كان لديك في تطبيقك كلاس ابلكيشن قم بإضة الكود البرمجي التالي في بدايته, وإذا لم تفهم قصدي ولم يكن لديك, قم بإنشاء كلاس جديد في مشروعك

وقم بتسميته إي اسم, مثال AndRody.java , وقم بإضافة الكود الموجود لديك في صفحة الإعداد, وهو لتمرير قيمة او المعرف الخاص بالتطبيقك, ومفتاح او رمز العميل.

ليصبح بالشكل التالي :

public class AndRody extends Application {

    public void onCreate() {
        Parse.initialize(this, "7P8iTbq8r5e0yw8aY6n5Xhq84UbsWsiufRkyI2R2", "8pc3hMwkHorktZoyWDwONie8gl9oG0Ct2BjaWNik");
        ParseInstallation.getCurrentInstallation().saveInBackground();
    }
}

لاحظ إنه extends Application . طبعاً ضع الكود الذي لديك, فهذا الكود الخاص بتطبيقي التجريبي لهذا الدرس.

ثم نقوم بالذهاب إلى ملف AndroidManifest.xml, لنضيف الصلاحيات المطلوبة :

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <!--
      لا تنسى قم بتغيير com.andrody.test إلى اسم الباكيج الخاص بك
    -->
    <permission android:protectionLevel="signature"
        android:name="com.andrody.test.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.andrody.test.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <!--
      لا تنسى قم بتغيير com.andrody.test إلى اسم الباكيج الخاص بك
    -->
    <permission android:protectionLevel="signature"
        android:name="com.andrody.test.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.andrody.test.permission.C2D_MESSAGE" />

كذلك في نفس المعرف لنقم بتعريف الاكتفتي الخاصة بالحزمة وهي : يتم وضعها داخل اوسمة <application> أي اسفل الاكتفتي لديك.

<service android:name="com.parse.PushService" />
        <receiver android:name="com.parse.ParsePushBroadcastReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.GcmBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <!--
  لا تنسى قم بتغيير com.andrody.test إلى اسم الباكيج الخاص بك
-->
                <category android:name="com.andrody.test" />
            </intent-filter>
        </receiver>
<service android:name="com.parse.PushService" />
        <receiver android:name="com.parse.ParsePushBroadcastReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.GcmBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <!--
  لا تنسى قم بتغيير com.andrody.test إلى اسم الباكيج الخاص بك
-->
                <category android:name="com.andrody.test" />
            </intent-filter>
        </receiver>

كذلك في نفس الملف لا تنسى إضافة الكلاس الجديد الذي قمنا بإنشائه AndRody.com وتتم إضافته من خلال تعريفه مباشرة داخل وسم ابليكيشن,بالشكل التالي :

<application
        android:name=".AndRody"

ليصبح الناتج النهائي بهذا الشكل : ( مع مراعاة انني استخدم مشروع فارغ تجريبي لا يحتوي سوا اكتفتي رئيسية واحدة ).

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.andrody.test" >

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <!--
      لا تنسى قم بتغيير com.andrody.test إلى اسم الباكيج الخاص بك
    -->
    <permission android:protectionLevel="signature"
        android:name="com.andrody.test.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.andrody.test.permission.C2D_MESSAGE" />

    <application
        android:name=".AndRody"
        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>
        <service android:name="com.parse.PushService" />
        <receiver android:name="com.parse.ParsePushBroadcastReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.GcmBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <!--
  لا تنسى قم بتغيير com.andrody.test إلى اسم الباكيج الخاص بك
-->
                <category android:name="com.andrody.test" />
            </intent-filter>
        </receiver>

    </application>

</manifest>

بعد الانتهاء من المطلوب في أسفل صفحة الإعداد يوجد : Test the SDK اضغط على زر test , وإن كان لديك اخطاء بعملية التركيب سوف يخبرك بذلك, وإذا تم نجاح الأمر بشكل سليم,
سوف تخرج لك رسالة : Congrats! You sent your first push notification. بالإضافة إلى وصول رسالة إشعار إلى جهازك.

بعد ذلك تستطيع الدخول إلى لوحة التحكم وارسال الإشعارات بنفس الطريقة, فقط القيام بالدخول للموقع والضغط على تطبيقك, من ثم ارسال اشعار وتختار هل تريد ارسال اشعارات لجميع المنصات
لهذا التطبيق, او فقط منصة اندرويد ولجميع الاشخاص أو لا .. يوجد خيارات متعددة اكتشفها بنفسك ….

ملاحظة : يوجد استخدامات متعددة لهذه الحزمة ولمنصات مختلفة, بالإضافة إلى يوجد العديد من طرق التركيب, ولو لاحظتم إن طريقة التركيب مختلفة في الموقع, ولكن حاولت إن استخدم اسهل طريقة
لأنني هنا من أجل تسهيل عليكم هذا المجال.

اتمنى لكم التوفيق جميعاً,, و السلام عليكم 🙂

عن عبدالقادر عليوي

مواليد 1996 , سوري الجنسية, طالب علم, لدي شغوف كبير في تعلم كل ما يتعلق بالانترنت من تطوير وحماية, أحب القراءة كثيراً .. هدفي نشر العلم بشتى أنواعه ومجالاته, متابع من الدرجة الأولى لـ الدكتور ابراهيم الفقي و الشيخ أحمد ديدات - رحمهم الله -.

شاهد أيضاً

التقنيات التي نستطيع برمجة تطبيقات والعاب الاندرويد بها

هل أنت محتار من أين تريد البدأ في مجال برمجة التطبيقات للهواتف الذكية أو الألعاب عالية الاداء ؟ تعرف في هذا المقال عن اللغات والتقنيات واختر منها ما يناسبك لدخول هذا المجال

تعلم برمجة تطبيق اندرويد لمدونتك البلوجر (1)

هل لديك تدوينة أو موقع إخباري ؟ أو معرض يعرض الكثير من البيانات من وسائط ؟ وبحاجة لعرضها في تطبيق اندرويد ؟ هذه فرصتك من هنا وللمبتدئين تعلم برمجة تطبيق لمدونتك

عرض صورة في التطبيق من فايربيس

بسم الله الرحمن الرحيم اليوم سيكون شرحنا عن كيفية عرض صورة  في التطبيق من قاعدة …

تعليق واحد

  1. yassine bakkas

    استمر يا اخي احسنت

ضع بصمتك بتعليق يعبر عن امتنانك

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.