안드로이드 Oreo (API26 , Android8.0) 버전부터는 노티채널을 만들어 주어야 하는데요.
채널을 만드는 것부터 하나씩 보도록 하겠습니다.
1. Notification Channel
노티피케이션 채널은 노티를 할 때마다 만들어야 하는 것은 아니구요.
앱에서 한번만 생성하면 되므로,
android.app.Application을 상속받은 Applicaiton.class에서 하도록 하였습니다.
코드를 보면서 정리해 보겠습니다.
NotificationChannel을 생성할 때는 다음의 사항들을 인자로 넣어주어야 합니다.
- id: 임의의 채널 id
- name: 알람 이름
- importance level: 알람의 중요도
id와 이름은 임의의 문자로 정해주면 되지만,
importance level은 정해진 상수를 사용해야 하는데요.
NotificationManager.IMPORTANCE_HIGH 가 가장 긴급하고 중요함을 의미합니다.
한가지 주의할 것은 Notification Channel을 생성해서 사용할 때는,
Oreo버전이상인지 확인하는 조건문으로 반드시 감싸주어야 한다는 점 입니다.
Notification Channel 객체는 서포트 라이브러리에 들어있지 않기 때문입니다.
노티를 알릴때에, 아래와 같이 빛이라든가 진동이 되도록 설정해 줄 수 있습니다.
주의할 점은 이러한 설정은 한번 해 놓으면, 이후에는 앱에서 바꿀수 없구요.
유저만이 이것을 키거나 끌 수 있습니다.
2. 채널 적용하기
위에서 생성한 채널은, 노티피케이션을 생성해 사용할 때 적용해 주어야 하는데요.
notification 을 생성할 때,
channel id를 두번째 인자로 주지 않으면, deprecated되었다고 줄이 그어지는 것을 볼 수 있습니다.
아래와 같이, 인자로 위에서 채널을 생성할 때 만든 id와 같은 id를 넣어줍니다.
이렇게 하면 노티채널을 생성하고, 알림시에 그 채널을 이용할 수 있습니다.
3. 정리
그렇게 많은 공수가 들어가는 작업은 아니지만,
Oreo버전 이후부터는 채널을 생성하지 않으면,
알람을 받을 수 없으므로 잊지말고 꼭 해야하겠습니다.
특히, 개발시에 낮은 버전의 폰으로 작업하시는 분들도 많이 있으실 텐데요.
꼭 노티채널을 생성하고 안드로이드 높은 버전의 폰으로 테스트해 볼 필요가 있을 것 같습니다.
'Android 개발 > Android' 카테고리의 다른 글
PendingIntent 의 Flag 사용할 때 주의할 점 (0) | 2019.08.28 |
---|---|
BuildConfig 와 ProductFlavor 정리 # BuildTypes BuildConfigField (0) | 2019.08.13 |
멀티덱스 적용없이 디버그를 위한 Proguard(프로가드) 설정 방법 (0) | 2019.07.26 |
AndroidX 로 SupportLibrary 마이그레이션(Migration) 하기 (0) | 2019.07.15 |
PhoneStateListener 로 안드로이드폰 전화 상태 알아내기 #통화중 음악재생 (2) | 2019.07.13 |
안드로이드 스튜디오3에서 Gradle Sync 이슈 해결하기 (0) | 2018.08.20 |
Android XML에서 Custom Font 사용하기(SupportLibrary26 이상) (0) | 2017.10.31 |
ViewPager 페이지 전환시, 추상클래스 또는 Interface로 Refresh구현하기 (0) | 2017.08.04 |
WeakReference <약한 참조> 에 대해서 정리해보자 (0) | 2017.06.30 |
Wifi / 3G 네트워크 연결 상태를 확인하는 ConnectivityManager (0) | 2017.05.23 |
댓글