반응형
안드로이드(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); } }; }
반응형
'안드로이드 개발' 카테고리의 다른 글
안드로이드(Android) 에뮬레이터에서 GPS 정보를 제대로 테스트하기 위한 셋팅 (0) | 2014.11.04 |
---|---|
안드로이드(Android) Animation 클래스 이용해 View, Layout 애니메이션 효과주기 (3) | 2014.11.03 |
안드로이드(Android) 레이아웃의 구조를 분석할수 있는 유틸 Hierarchy Viewer (0) | 2014.11.03 |
안드로이드(Android) GridView 를 이용해 이미지 리스트 만들기 (1) | 2014.11.02 |
안드로이드(Android) PhoneGap, Eclipse 와 연동하여 개발을 위한 환경셋팅 2부 (0) | 2014.11.01 |
안드로이드(Android) PhoneGap, Eclipse 와 연동하여 개발을 위한 환경셋팅 1부 (0) | 2014.11.01 |
안드로이드(Android) 통지메시지(Notification) 소리를 MP3 로 연결 (0) | 2014.10.31 |
안드로이드(Android) Notification is deprecated 통지메시지 변경하기 (0) | 2014.10.31 |