안드로이드 빌드 버전을 안드로이드 8.0 오레오(Oreo)로 사용함에 있어서, 알림(Notification) 쪽에 이슈가 생겼다.
8.0으로 업데이트되면서 기본적으로 사용하던 알림(Notification)이 동작하지 않은 문제였다.
안드로이드 8.0 이상 노티피케이션을 사용하기 위해서는 하나 이상의 알림 채널을 만들어야한다.
1. 알림 채널 만들기
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// 채널 ID
String id = "my_channel_01";
// 채널 이름
CharSequence name = "test";
int importance = NotificationManager.IMPORTANCE_LOW;
NotificationChannel mChannel = new NotificationChannel(id, name, importance);
// 알림 채널에 사용할 설정을 구성한다.
mChannel.enableLights(true);
mChannel.setLightColor(Color.RED);
mChannel.enableVibration(true);
mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
// 뱃지 사용 여부를 설정한다.(8.0부터는 기본이 true인듯하다.)
mChannel.setShowBadge(false);
mNotificationManager.createNotificationChannel(mChannel);
2. 위에 생성한 채널 ID 를 이용해서 알림을 생성한다.
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// 알림 ID
int notifyID = 1;
// 1번에서 생성한 채널 ID 이름
String CHANNEL_ID = "my_channel_01";
// 알림을 만들고 알림 채널을 설정합니다.
Notification notification = new Notification.Builder(MainActivity.this)
.setContentTitle("New Message")
.setContentText("You've received new messages.")
.setSmallIcon(R.drawable.ic_stat_name)
.setChannelId(CHANNEL_ID)
.build();
// Issue the notification.
mNotificationManager.notify(notifyID, notification);
'Programming > Android' 카테고리의 다른 글
[Android]Google 광고 ID 가져오기 (0) | 2018.01.25 |
---|---|
[에러]AAPT2 error: check logs for details (0) | 2017.11.21 |
Wifi 수신 레벨 5단계로 나누기 (0) | 2017.08.08 |
unspecified on project app resolves to an APK archive which is not supported as a compilation dependency (0) | 2017.07.11 |
RadioButton tint 하위 버전 호환 문제 (drawable icon 색상 변경) (0) | 2017.05.28 |