-
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
위에 내용을 프로젝트에 적용하는 방법이다.
먼저 앱 내 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
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