Akashic Records

Android Notifications 본문

오래된글/Articles

Android Notifications

Andrew's Akashic Records 2018. 4. 19. 14:31
728x90

Introduction

Notification는 사용자가 관심 있을만한 Message을 Push 해주는 기능입니다. 노티 기능을 사용하고 있는 사용자에게 새로운 이메일이 왔을 때 메세지를 Status bar에 띄어주거나 소리 또는 진동을 줄 수도 있습니다.


Step 1: Notification Service 가져오기


//Get the Notification Service

NotificationManager notifier = (NotificationManager)MainActivity.this.

getSystemService(Context.NOTIFICATION_SERVICE);



Step 2: Notification 객체 초기화


//Get the icon for the notification

int icon = ViewHelper.findDrawableId(MainActivity.this, "push");

Notification notification = new Notification(icon,"Simple Notification",System.currentTimeMillis());


“push”는 icon이름으로 res/drawable 밑에 “push.png”로 있다고 가정하였습니다.


Step 3: Setup the Intent to open an Activity


Intent toLaunch = new Intent(MainActivity.this,MainActivity.class);

PendingIntent contentIntent =

PendingIntent.getActivity(MainActivity.this, 0, toLaunch, 0);


Notification을 클릭했을 때 Activity을 호출 할 필요가 없다면 Null을 전달 합니다.


Step 4: Set the Notification’s Information


//Set the Notification Info

notification.setLatestEventInfo(MainActivity.this, "Hi!!", "This is a simple notification", contentIntent);


“Hi!”는 Status bar에 보이게 되고, Status bar을 드래그 하면 상세 내용으로 “This is a simple notification”이 보여집니다.


Step 5: Setting Notification Flags


//Setting Notification Flags

notification.flags |= Notification.FLAG_AUTO_CANCEL;

notification.flags |= Notification.DEFAULT_SOUND;


노티 사운드는 시스템 기본 소리로,  노티가 자동 Cancel 되게 됩니다.


Step 6: Notification 전달


//Send the notification

notifier.notify(0x007, notification);


“0x007”는 노티의 유니크 ID 입니다. 이 ID가 같을 경우 새로운 노티가 오게되면 업데이트 되게 됩니다.


//Adding the Custom Sound

notification.audioStreamType = AudioManager.STREAM_NOTIFICATION;

String uri = "android.resource://org.openmobster.notify.android.app/"+

MainActivity.this.findSoundId(MainActivity.this, "beep");

notification.sound = Uri.parse(uri);


위 코드는 Custom Sound을 사용하는 방식을 보여줍니다. “beep.wav” 파일이 있다는 가정에서 작성되었습니다.


728x90
Comments