Please Enable JavaScript!
Gon[ Enable JavaScript ]

안드로이드(Android) 상태바에 통지(Notifications) 메시지 보내기

안드로이드 개발
반응형

안드로이드(Android) 상태바에 통지(Notifications) 메시지 보내기

 

개발환경 : window 7 64bit, Eclipse Mars, Android 4.2.2

 

이번예제는 버튼을 만들어 클릭시 상태바에

통지 메시지를 날리는 겁니다. 날아온 통지메시지는

위에서 아래로 내려 제목과 내용을 확인할수

있습니다.

이 알림서비스는 여러모로 많이 쓰입니다. 프로그램에

이벤트가 발생했을 때 사용자에 통보 함으로서

현재 벌어지는 일들에 대해 알려주는 것입니다.

메일, SNS 메시지, 메시지 등 활용범위는 엄청나겠죠.

 

아래 샘플은 통지메시지 보내기 하면 메시지가

날아가서 상태바에 추가됩니다. 그리고 통지메시지

지우기 버튼을 누르면 삭제 됩니다.

 

 

NotificationManager 객체를 가져옵니다.

그리고 notify() 함수에 값을 넘기기위해

Notificaton 객체를 셋팅합니다.

setContentTitle 에는 제목, setContentText 에는

내용을 넣습니다. setTicker 는 상단 메시지를

열어보기 전에 알려주는 간단 메시지 값입니다.

 

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

Context context = SampleActivity18.this;
Notification notify = new Notification.Builder(context)
	 .setTicker("아주 중요한 메시지")
	 .setContentTitle("중요한 메지지 이니 무조건 쳐보기")
     .setContentText("통지메시지 입니다.")
     .setSmallIcon(android.R.drawable.stat_notify_more)
     .setWhen(System.currentTimeMillis())
     .build();

notificationManager.notify(NOTIFICATION_ID, notify);

 

통지메시지 지우기를 클릭해서 받은 통지메시지를

지우기 위한 소스 입니다.

 

Button.OnClickListener myClearOnClickListener = new Button.OnClickListener() {
	public void onClick(View v) {
		notificationManager.cancel(NOTIFICATION_ID);
	}
};

 

메인 activity 의 레이아웃 xml 입니다.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="통지메시지 보내기와 지우기" />

    <Button
        android:id="@+id/gen"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="통지메시지 보내기" />

    <Button
        android:id="@+id/clear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="통지메시지 지우기" />

</LinearLayout>

 

메인 activity 의 전체 소스입니다.

버튼과 통지메시지 보내기, 현재 나와있는 통지메시지

지우기에 대한 소스가 있습니다.

 

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class SampleActivity18 extends Activity {

	private NotificationManager notificationManager;
	private static final int NOTIFICATION_ID = 1;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_sample_activity18);

		Button btnGen = (Button) findViewById(R.id.gen);
		btnGen.setOnClickListener(myGenOnClickListener);
		Button btnClear = (Button) findViewById(R.id.clear);
		btnClear.setOnClickListener(myClearOnClickListener);
	}

	private void generatNotification() {

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

		Context context = SampleActivity18.this;
		Notification notify = new Notification.Builder(context)
			 .setTicker("아주 중요한 메시지")
			 .setContentTitle("중요한 메지지 이니 무조건 쳐보기")
		     .setContentText("통지메시지 입니다.")
		     .setSmallIcon(android.R.drawable.stat_notify_more)
		     .setWhen(System.currentTimeMillis())
		     .build();

		notificationManager.notify(NOTIFICATION_ID, notify);
	}

	Button.OnClickListener myGenOnClickListener = new Button.OnClickListener() {
		public void onClick(View v) {
			generatNotification();
		}
	};

	Button.OnClickListener myClearOnClickListener = new Button.OnClickListener() {
		public void onClick(View v) {
			notificationManager.cancel(NOTIFICATION_ID);
		}
	};
}

 

Notifications

반응형
Posted by 녹두장군1
,