1. Android
(1) android/app/src/main/res/raw 폴더로 이동한다. (없으면 만들어준다.)
(2) 해당 폴더에 설정하려는 음원 파일을 넣는다.
(3) android/app/src/main/java/..../MainActivity.java를 다음과 같이 수정한다.
- "{}"에 자신이 해당하는 내용을 적으면 된다.
- 참고로 importance의 종류는 네 개가 존재한다.
(1) NotificationManager.IMPORTANCE_HIGH : 알림음 발생하며 헤드업 알림 제공
(2) NotificationManager.IMPORTANCE_DEFAULT : 알림음 발생
(3) NotificationManager.IMPORTANCE_LOW : 알림음 발생하지 않음
(4) NotificationManager.IMPORTANCE_MIN : 알림음도 없고 상태표시줄에도 표시되지 않음
- 따옴표는 꼭 ""를 사용해서 에러가 발생하지 않도록 한다. (''는 에러 발생함)
2. iOS
(1) Xcode 실행 후 iOS 폴더에 add new files to ...를 통해 음원 파일을 넣어준다. (copy files if needed 체크)
(안드로이드에 비해서 그렇게 간단할 수가 없다.)
※ 참고로 안드로이드와 iOS가 각각 지원하는 notification sound 파일 형식은 다음과 같다.
- 안드로이드 : .wav, .aiff, .caf
- iOS : .mp3, .ogg, .wav
3. 서버 측 설정
- 다음과 같이 메시지를 보내준다.
- 참고로 var admin = require("firebase-admin")
- android와 iOS 모두 음원 파일의 확장자까지 적어준다.
※ 중요한 사항
안드로이드의 경우 에뮬레이터에서는 적용이 되지 않다가 실제 기기에 돌려보면 알림음이 정상적으로 발생하는 경우도 존재한다고 한다.
분명 모든 것을 맞게 적용한 것 같은데 안드로이드의 알림음만 제대로 변경되지 않았다면 실제 기기를 활용해서 테스트 해보자.
'모바일 이야기' 카테고리의 다른 글
[React Native] Image aspect ratio 사용하기 (0) | 2022.02.12 |
---|---|
[React Native] Drawer Navigation에서 헤더 없이 Icon만 만들기 (0) | 2022.02.04 |
[React Native] TypeError: undefined is not an object (evaluating 'InnerNativeModule.installCoreFunctions') (0) | 2022.02.04 |
[React Native] Dimensions.get('window') vs Dimensions.get('screen') (0) | 2022.01.30 |
2021-10-28 안드로이드 개발 환경 세팅 (React Native) (0) | 2021.10.28 |