2011년 5월 21일 토요일

Android Notifications

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” 파일이 있다는 가정에서 작성되었습니다.

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...