2016년 9월 16일 금요일

안드로이드 상태바에 알림내용 표기 (Notification Bar)


안드로이드 상태바에 알림내용 표기 (Notification Bar)

상단바에 알림을 설정하는 소스

샘플소스 _ 자바 ) 

/*
 * 상단바에 고정
 */
public synchronized void topBarSetting(){

// 알림을 띄우기 위해서 서비스를 불러온다.
NotificationManager notificationManager = (NotificationManager)actMain.getSystemService(Activity.NOTIFICATION_SERVICE);
// Set the icon, scrolling text and timestamp
// 상태바에 띄울 알림을 생성한다. drawable은 상태바에 쓰일 아이콘,
// text는 알림이 도착한 순간 상태바 전체에 나타나는 메세지,
String text = hiData.getDdayTitle();

String sUnitDateSrc = hiData.getDdayYmd();
String sUnitDate = sUnitDateSrc.substring(0, 3);
sUnitDate = sUnitDate + "-" + sUnitDateSrc.substring(3, 5);
sUnitDate = sUnitDate + "-" + sUnitDateSrc.substring(5, 7);
sUnitDate = sUnitDateSrc + " 00:00:01.0";
//timestamp 형식 : "2009-03-20 10:20:30.0";
java.sql.Timestamp t = java.sql.Timestamp.valueOf(sUnitDate);
long lTime = t.getTime();

Notification notification = new Notification(R.drawable.icon_start50, text,
lTime);

// 아래는 위에서 불러온 방식으로 알림 방식 설정을 하는 것이다 : 진동
notification.defaults = Notification.DEFAULT_VIBRATE;

// 아래 코드는 사용자가 알림을 터치했을 때 액티비티를 호출하기 위한 인텐트이다
PendingIntent contentIntent = PendingIntent.getActivity(actMain, 0,
new Intent(actMain, LauncherActivity.class)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) /*FLAG_ACTIVITY_NEW_TASK, FLAG_ACTIVITY_CLEAR_TOP*/
.putExtra("noti_timestamp", hiData.getEnterTime()),
PendingIntent.FLAG_UPDATE_CURRENT);
// Set the info for the views that show in the notification panel.
// 상태바를 내렸을 때 알림 패널에 대한 설정이다
notification.setLatestEventInfo(
actMain,
hiData.getDdayTitle(),
hiData.getMemoCt(),
contentIntent);

// Send the notification.
String sUnitTagKey = hiData.getEnterTime();
int iUnitLength = hiData.getEnterTime().length();
int iUnitNotiKey = Integer.parseInt(hiData.getEnterTime().substring(iUnitLength-5, iUnitLength-1));
notificationManager.notify(sUnitTagKey, iUnitNotiKey, notification);

if(notificationManager!=null){
notificationManager = null;
}
}

/*
 * 상단바에 고정 해제
 */
public synchronized void topBarSettingRelease(){

NotificationManager notificationManager = (NotificationManager)actMain.getSystemService(Activity.NOTIFICATION_SERVICE);
String sUnitTagKey = hiData.getEnterTime();
int iUnitLength = hiData.getEnterTime().length();
int iUnitNotiKey = Integer.parseInt(hiData.getEnterTime().substring(iUnitLength-5, iUnitLength-1));
if(notificationManager!=null){
notificationManager.cancel(sUnitTagKey, iUnitNotiKey);
notificationManager = null;
}
}



샘플소스 _ 이미지 ) 




즐거운 시간 보내세요~



댓글 없음:

댓글 쓰기