Android 8.0(Oreo) 알림(Notification) 사용법

Programming/Android 2017. 10. 1. 23:02 Posted by 생각하는로뎅
반응형

  안드로이드 빌드 버전을 안드로이드 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);





반응형