Showing posts with label pdf. Show all posts
Showing posts with label pdf. Show all posts

Wednesday, May 2, 2012

Creating Notifications


Creating Notifications
The project describes how to display notifications in your application.
Underlying Algorithm:
Basic description of algorithm in step by step form:
1.) Create a Project NotificationExample
2.) Make sure to add following in your res/values/strings.xml file:
<resources>
    <string name="info">Notification Example, press the button Notification to add a notification.</string>
    <string name="app_name">NotificationExample</string>
        <string name="btn_default_notification_text">Show Notification</string>
        <string name="notification_string">This is the activity started when you press the notification.</string>
</resources>
3.) Insert following code in your main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">
    <LinearLayout
           android:orientation="vertical"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:layout_weight="0.9">
       
                <TextView  
               android:layout_width="fill_parent" 
               android:layout_height="wrap_content" 
               android:gravity="center_vertical|center_horizontal"
               android:text="@string/info"/>
    </LinearLayout>
       
    <LinearLayout
           android:orientation="horizontal"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:layout_weight="0.1"
           android:gravity="bottom|center_horizontal">
           
                    <Button
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:id="@+id/btn_default_notification"
               android:text="@string/btn_default_notification_text"/>
               
    </LinearLayout>
</LinearLayout>
4.) Create and insert following code in res/layout/notification_viewer.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">
        <LinearLayout
           android:orientation="vertical"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:layout_weight="0.9">
       
                <TextView  
               android:layout_width="fill_parent" 
               android:layout_height="wrap_content" 
               android:gravity="center_vertical|center_horizontal"
               android:text="@string/notification_string"/>
          </LinearLayout>
</LinearLayout>
5.) Create and insert following code in res/layout/customlayout.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:orientation="horizontal">
        <ImageView
               android:id="@+id/custom_view_image"
               android:layout_width="wrap_content"
               android:layout_height="fill_parent"
               android:layout_weight="0.1"
               android:src="@drawable/icon"
               android:scaleType="fitCenter">
        </ImageView>
     
        <LinearLayout
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"
               android:orientation="vertical"
               android:gravity="center_vertical"
               android:layout_marginTop="5dp"
               android:layout_marginBottom="5dp"
               android:layout_weight="0.9">
                <TextView
                       android:id="@+id/custom_view_text"
                       android:layout_width="fill_parent"
                       android:layout_height="wrap_content"
                       android:layout_weight="0.9"
                       android:gravity="center_vertical"
                       android:text="Sample message"
                       android:textColor="#000">
                </TextView>
             
                <ProgressBar
                       style="?android:attr/progressBarStyleHorizontal"
                       android:id="@+id/custom_view_progress"
                       android:layout_width="fill_parent"
                       android:layout_height="wrap_content"
                       android:layout_weight="0.9"
                       android:max="100"
                       android:gravity="center_vertical">
                </ProgressBar>
        </LinearLayout>
</LinearLayout>
6.) Insert following in your manifest file:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="org.example.NotificationExample"
     android:versionCode="1"
     android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10" />
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".NotificationExample"
                 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=".NotificationViewer"/>
    </application>
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
</manifest>
7.) Create and insert following code in src/org.example.NotificationExample/NotificationViewer.java:
package org.example.NotificationExample;
import android.app.Activity;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Bundle;
public class NotificationViewer extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.notification_viewer);
               
                NotificationManager notificationManager =(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
               
                notificationManager.cancel(Constants.NOTIFICATION_ID);
        }
}
8.) Create and insert following code in src/org.example.NotificationExample/Constants.java:
package org.example.NotificationExample;
public interface Constants
{
        public static final int NOTIFICATION_ID = 10001;
        static final int PROGRESS_MAX = 100;
}
9.) Run the application.
Steps to Create:
1.) Open Eclipse. Use the New Project Wizard and select Android Project Give the respective project name i.e. NotificationExample.
2.) Enter following information:
Project name: NotificationExample
Build Target: Android 2.3.3
Application name: NotificationExample
Package name: org.example. NotificationExample
Create Activity: NotificationExample
On Clicking Finish NotificationExample code structure is generated with the necessary Android Packages being imported along with NotificationExample.java. NotificationExample class will look like following:
package org.example.NotificationExample;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class NotificationExample extends Activity
{
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
       ((Button)findViewById(R.id.btn_default_notification)).setOnClickListener(btnClick);
    }
   
    private void addDefaultNotification(){
        NotificationManager notificationManager =(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
       
        int icon = R.drawable.icon;
        CharSequence text = "Notification Text";
        CharSequence contentTitle = "Notification Title";
        CharSequence contentText = "Sample notification text.";
        long when = System.currentTimeMillis();
       
        Intent intent = new Intent(this, NotificationViewer.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);
        Notification notification = new Notification(icon,text,when);
       
        long[] vibrate = {0,100,200,300};
        notification.vibrate = vibrate;
       
        notification.ledARGB = Color.RED;
        notification.ledOffMS = 300;
        notification.ledOnMS = 300;
       
        notification.defaults |= Notification.DEFAULT_LIGHTS;
        //notification.flags |= Notification.FLAG_SHOW_LIGHTS;
       
        notification.setLatestEventInfo(this, contentTitle, contentText, contentIntent);
       
        notificationManager.notify(Constants.NOTIFICATION_ID, notification);
    }
   
    private final View.OnClickListener btnClick = new View.OnClickListener() {
               
                @Override
                public void onClick(View v) {
                        switch(v.getId())
                        {
                                case R.id.btn_default_notification:
                                {
                                        addDefaultNotification();
                                       
                                        break;
                                }
                        }
                }
        };
        }
Output – The final output:
Share and Enjoy