-
Firebase Cloud Messaging (FCM / 푸시 알림) 사용하기 2Dev/android 2019. 5. 9. 13:32
2 단계 앱에서 푸시를 받아보자
1단계 FCM SDK 설정 방법 : https://dailylonnie0125.tistory.com/9
관련 튜토리얼 URL
https://firebase.google.com/docs/cloud-messaging/android/client?hl=ko
Android에서 Firebase 클라우드 메시징 클라이언트 앱 설정 | Firebase
Firebase 클라우드 메시징 Android 클라이언트 앱을 작성하려면 Gradle과 FirebaseMessaging API 및 Android 스튜디오 1.4 이상을 사용합니다. 이 페이지에서는 Android 프로젝트에 Firebase를 추가하는 단계를 완료했다고 가정하고 안내합니다. FCM 클라이언트에 Android 4.1 이상을 실행하며 Google Play 스토어 앱도 설치되어 있는 기기 또는 Google API로 Android 4.1을 실행하는
firebase.google.com
위에 내용을 프로젝트에 적용하는 방법이다.
먼저 앱 내 build.gradle 에서 FCM SDK를 추가한다
그 다음 AndroidManifest.xml 에 <application> 단에다가
<service android:name=".java.MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>를 복사해 넣어준다.
여기서 안드로이드 8.0 (api 26) 이상은 알림채널을 사용해야하는데 내 테스트 폰이 7.0이라 오레오 대응은 나중에 포스팅 하기로...
다음으로 FirebaseMessagingService를 상속받을 클래스를 만들자
import android.util.Log;
import com.google.firebase.messaging.RemoteMessage;
public class FirebaseMessagingService extends com.google.firebase.messaging.FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
String title = remoteMessage.getNotification().getTitle();
Log.d("LOGMSG", "onMessageReceived title : " + title);
}
@Override
public void onNewToken(String token) {
super.onNewToken(token);
}
}onMessageReceived() 는 FCM을 수신할 때 호출된다.
여기서 메시지 내용을 받아 원하는 처리를 할 수 있다.
(예 : 메시지 내용을 다른 액티비티로 Intent 등)
참고로 앱이 포 그라운드 상태에서 호출된다.
https://firebase.google.com/docs/cloud-messaging/android/receive?hl=ko
Android 앱에서 메시지 수신 | Firebase
Firebase 알림의 동작은 수신하는 앱의 포그라운드/백그라운드 상태에 따라 달라집니다. 포그라운드 상태인 앱에서 알림 메시지 또는 데이터 메시지를 수신하려면 onMessageReceived 콜백을 처리하는 코드를 작성해야 합니다. 알림과 데이터 메시지의 차이점에 대한 설명은 메시지 유형을 참조하세요. 메시지 처리 메시지를 수신하려면 FirebaseMessagingService를 확장하는 서비스를 사용합니다. 서비스에서 onMessageReceived
firebase.google.com
onNewToken() 은 새 토큰이 생성될 때 호출된다.
토큰을 사용해야할 때 여기서 받아서 사용하자.
onMessageReceived() 에서 FCM을 받을 때 로그를 찍기 위해 코드를 작성해준다.
String title = remoteMessage.getNotification().getTitle();
Log.d("LOGMSG", "onMessageReceived title : " + title);빌드 후 네트워크가 되는 단말기에 설치한다.
Firebase 에서 성장 > Cloud Messaging 메뉴를 들어가보자
Send your first message 버튼 클릭
알릴 제목 라벨 텍스트를 작성한다
푸시를 보낼 앱을 타겟팅 한다
언제 알림을 할지 스케쥴을 작성할 수 있다.
사용자가 알림을 확인했을 때의 이벤트를 설정할 수 있다. (예: 앱을 오픈한다)
추가 옵션은 선택 사항이므로 나는 패스
하단에 검토 누르고
게시 버튼을 누르면 메시지가 단말기에 표시된다.
(앱이 포그라운드 상태여야 onMessageReceived 가 호출됨에 주의)
로그창에 확인해봅시다.
자 이제 푸시 알림이 완성됐다.
이제 응용해서 자유롭게 원하는 기능을 구현하면 된다!
'Dev > android' 카테고리의 다른 글
Glide로 서버에서 이미지를 받아 MenuItem의 아이콘 변경하기 (비트맵으로 변경하기) (0) 2020.01.14 ImageView에서 background 와 src 의 차이 (0) 2019.12.16 OS버전 별 변경점 (0) 2019.08.16 안드로이드 웹뷰에서 로그인 세션 유지하기 (1) 2019.05.09 Firebase Cloud Messaging (FCM / 푸시 알림) 사용하기 1 (0) 2019.05.09