안드로이드 Notification 이용 방법에도 여러 가지가 있습니다.

상태바 알림을 사용할 때에는 개잘 중인 앱이 SDK 11 이상인지 이하인지 

잘 체크 해서 사용해야 합니다.

오늘 시간이 없어서 코드만 간략하게 올려 봅니다 

도움 되시길 바라며 ^^


아래소스는 옛(구) 버전의 notification 소스 코드입니다.

모든 OS 호환 되며 가장 기본 적인 Title , text , icon , ticker 이용시 사용되는 코드 입니다.

  ii.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK  | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
  NotificationManager notificationManager = (NotificationManager)context.getSystemService(Activity.NOTIFICATION_SERVICE);
  PendingIntent pendingIntent = PendingIntent.getActivity(context, Code, ii, PendingIntent.FLAG_UPDATE_CURRENT);
  Notification notification = new Notification();
  notification.icon = R.drawable.ic_launcher;
  notification.tickerText = ticker 에 보여질 메시지;
  notification.when = System.currentTimeMillis();
  notification.vibrate = new long[] { 500, 100, 500, 100 };
  notification.sound = Uri.parse("/system/media/audio/notifications/20_Cloud.ogg");
  notification.defaults |= Notification.DEFAULT_SOUND;
  notification.flags = Notification.FLAG_AUTO_CANCEL;
  notification.setLatestEventInfo(context, getString(R.string.app_name) , msg , pendingIntent);
  notificationManager.notify(Code, notification);

아래 소스는 최신 업데이트된 notification  소스 입니다. 

하지만 아래 소스를 사용하신다면 확인 하셔야 할 부분이 있습니다.

제가 테스트한 폰은 갤럭시s4 LTE 입니다. 다른 폰에서는 아직 테스트 해보진 않았지만

아래 소스를 사용할경우 contenttext 를 입력하여 notification을 사용하시게 되면 이상하게 

가끔 상태바 알림 제목은 나오나 내용이 안나오는 경우가 있는데 

좀더 테스트를 해보시구 확인 해보셔야 할 듯합니다. 


위에서 말한 오류만 아니라면 새롭게 업데이트 된 notification 은 다양하게 이용 가능하고 좋습니다.

상태알림 바에서 아래로 드레그하게 되면 상세내용도 확인 할 수 있도로 가능하며 

tag 값도 입력하여 여러가지로 다양하게 꾸밀 수 있습니다. view(뷰)까지 추가 가능하기때문에

이미지나 뷰를 추가하여 다양하게 효율 적으로 사용 가능하여 좋은 것 같습니다.


// Notification.Builder builder =  new Notification.Builder(ctx)  sdk 11 이상 사용가능
NotificationCompat.Builder builder =  new NotificationCompat.Builder(ctx)  //sdk 11이전 버전도 호환 가능 하기 위하여 나옴
Intent ii = new Intent(getApplicationContext(), 클레스네임.class);
ii.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK  | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), 0, ii, PendingIntent.FLAG_UPDATE_CURRENT);  
Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
builder.setSound(alarmSound);
builder.setSmallIcon(R.drawable.ic_launcher);
builder.setContentTitle(getString(R.string.app_name));
builder.setTicker( ticker 에 보여질 메시지 );
builder.setContentText( 상태바를 내리면 보여질 메시지);
builder.setContentIntent(contentIntent);  
builder.setAutoCancel(true);
builder.setLights(Color.BLUE, 500, 500);
long[] pattern = {500,500,500,500};
builder.setVibrate(pattern);
builder.setStyle(new NotificationCompat.BigTextStyle());
NotificationManager manager = (NotificationManager)getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);  
 manager.notify(Code, builder.build());  

+ Recent posts