본문 바로가기
Study/Android

android 8 오레오(Oreo) 알림창(Notification)

by Answer Choi 2018. 12. 5.
반응형


안드로이드 8로 넘어오면서 부터는 보안이 더욱 더 강화되었습니다.


그래서 알림창도 만든다고 다 알림을 줄 수 가 없습니다.


그렇다 보니 기존에 만들었던 앱의 알림이 android 8부터는 오지 않는 현상이 발생 ㅠ


물론 target SDK가 26보다 밑이면 괜찮다고 합니다.


다시 알림이 오게 하려면 NotificationChannel을 만들어 줘야합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void createNotificationChannel() {
    // Create the NotificationChannel, but only on API 26+ because
    // the NotificationChannel class is new and not in the support library
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        CharSequence name = getString(R.string.channel_name);
        String description = getString(R.string.channel_description);
        int importance = NotificationManager.IMPORTANCE_DEFAULT;
        NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance);
        channel.setDescription(description);
        // Register the channel with the system; you can't change the importance
        // or other notification behaviors after this
        NotificationManager notificationManager = getSystemService(NotificationManager.class);
        notificationManager.createNotificationChannel(channel);
    }
}
cs


위 코드는 android developer에서 제공하는 기본 코드입니다.


NotificationChannel은 한번만 실행해주면 되어서 앱 실행시 한번만 실행해 주세요.


Line 5 : 채널 이름인데 하시고 싶으신걸로 하시면됩니다.


Line 6 : 채널에 대한 설명.


Line 7 : 알림에 대한 중요도입니다.



알림에 대한 중요도는 위 사진처럼 선택하시면 됩니다.


소리나 진동이 필요하시면 IMPORTANCE_DEFAULT, 


그냥 알림만 있으면 된다면 IMPORTANCE_LOW 로~


Line 8 : 여기서 넣은 CHANNEL_ID는 알림창을 실행할때 필요합니다.




이제 알림창을 만드실때 뒤에 CHANNEL_ID만 넣어주시면 됩니다.

반응형

인기글