알림(Notification)
: 앱의 각종 상황을 사용자에게 알릴 목적으로 이용하는 기능support 라이브러리
에서 NotificationCompat 클래스
제공클래스 | 기능 |
---|---|
NotificationManager | 알람 시스템을 발생시키는 SystemService |
Notification | 알람 구성 정보를 가지는 객체 |
NotificationCompat.Builder | 알람을 다양한 정보로 생성 |
NotificationChannel | 알람의 관리 단위 |
NotificationChannel
에 의해 Builder가 생성된다.NotificationChannel
: 알람에 대한 관리 단위if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.0){
String channelId = "one-channel";
String channelName = "My channel One";
String channelDescription = "My channel One Description";
NotificationChannel channel = new NotificationChannel(channelId, channelName,
NotificationManager.IMPORTANCE_DEFFAULT);
channel.setDescription(channelDescription);
// 각종 채널 설정
channel.enableLight(true);
channel.setLightColor(Color.RED);
channel.enableVibration(true);
....
// channel에 등록된 builder
builder = new NotificationCompat.Builder(this, channelId);
} else{
builder = new NotificationCompat.Builder(this);
}
Builder의 각종 setter 함수 이용해 알람의 구성 정보 명시
함수 | |
---|---|
setSmallIcon | 작은 아이콘 이미지 저장 |
setWhen | 시간 |
setContentTitle | 확장 내용 타이틀 문자열 |
setContentText | 확장 내용의 본문 문자열 |
setDefaults | DEFULT_SOUND, VIBRATE, LIGHTS 함께 지정가능 |
setAutoCancel | 터치시 자동 삭제 여부, true 값이 지정되면 터치시 삭제 |
setOngoing | 진행표시여부, true 설정시 사용자가 손가락으로 밀어서 삭제불가 |
builder.addAction(new NotificationCompat.Action.Builder(android.R.drawable.ic_menu_share,
"ACTION!", pIntent1).build());
알람에 여러 데이터를 목록 형태로 제공
NotificationCompat.InboxStyle style = new NotificationCompat.InBoxStyle(builder);
style.addLine("activity")
style.addLine("service")
style.setSummaryText("Android Component");
builder.setStyle(style);
setProgress()
함수에 progress 값 대입NotificationChannel channel = new NotificationChannel(channeId,
channelName, NotificationManager.IMPORTANCE_HIGH);
사람에 대한 정보 표현(카톡온 사람의 이름, 프사)
Person sender1 = new Person.Builder()
.setName("kkang")
.setIcon(Icon.createWithResource(this, R.drawable.person1))
.build();
...