1. Firebase 회원가입 필요
- 도움말 : 안드로이드 스튜디오 상단 > Tool > Firebase > Cloud Messaging
- 참조 : https://hwihyeon.tistory.com/4
2. 1번 사항 완료 후 dependecies 설정 추가
- build.gradle (Module: app)
implementation 'com.google.firebase:firebase-messaging:23.0.2'
3. 서비스 클래스 생성
- 원활한 관리를 위해 service 패키지 생성 후 파일 생성
- service > FcmService
package com.hhk.myapplication.service;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.os.Build;
import androidx.annotation.NonNull;
import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import com.hhk.myapplication.R;
public class FcmService extends FirebaseMessagingService {
private static String CHANNEL_ID = "tset_app_fcm";
private static String CHANEL_NAME = "tset_app_fcm";
@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
NotificationManagerCompat fcmMsgManager = NotificationManagerCompat.from(getApplicationContext());
NotificationCompat.Builder fcmBuilder = null;
if (fcmMsgManager.getNotificationChannel(CHANNEL_ID) == null) {
//CHANNEL_ID : 임의의 알림 id, CHANEL_NAME : 임의의 알림 이름, NotificationManager.IMPORTANCE_DEFAULT : 중요도
//IMPORTANCE_HIGH :긴급 (알림음이 울리며 헤드업 알림으로 표시), IMPORTANCE_DEFAULT : 높음 (알림음이 울림)
//IMPORTANCE_LOW : 중간 (알림음이 없음, IMPORTANCE_MIN : 낮음 (알림음이 없고 상태줄에 표시되지 않음)
//안드로이드 API 참조 : https://developer.android.com/guide/topics/ui/notifiers/notifications?hl=ko#Templates
NotificationChannel fcmChannel = new NotificationChannel(CHANNEL_ID, CHANEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
fcmMsgManager.createNotificationChannel(fcmChannel);
}
fcmBuilder = new NotificationCompat.Builder(getApplicationContext(), CHANNEL_ID);
//제목 설정
String title = remoteMessage.getNotification().getTitle();
//내용 설정
String body = remoteMessage.getNotification().getBody();
//아래 세개 항목은 필수...?
fcmBuilder.setContentTitle(title);
fcmBuilder.setContentText(body);
fcmBuilder.setSmallIcon(R.drawable.ic_launcher_background);
Notification notification = fcmBuilder.build();
fcmMsgManager.notify(1, notification);
}
}
4. FCM Push 를 수신받을 권한 설정
- manifests
<uses-permission android:name="android.permission.INTERNET" />
5. service 권한 설정
- manifests > <application> 내부에 생성
<service
android:name=".service.FcmService"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
6. Firebase에서 Push 메시지 전송
- 1) Cloud Messaging > Send your first message 클릭
- 2) 데이터 입력 후 다음 버튼 클릭
- 3) 전송할 그룹 설정 후 다음 버튼 클릭
- 4) 전송 시간 설정 (예약 가능, 지금으로 설정)
- 별다른 특이사항 없을 시 바로 검토 클릭 (나머지는 선택사항)
- 5) 대상에 전송 타겟팅 확인 후 게시 버튼 클릭
7. 실행 예시
'안드로이드 > 안드로이드_java' 카테고리의 다른 글
안드로이드 Volley 적용 및 스프링 서버 데이터 통신 구축 (0) | 2022.04.11 |
---|---|
안드로이드 Retrofit2 적용 및 스프링 서버 데이터 통신 구축 (0) | 2022.04.08 |
상태표시줄 알림 만들기 (0) | 2022.03.24 |
커스텀 다이얼로그 만들기 (0) | 2022.03.24 |
디스플레이 메시지(toast) 만들기 (안드로이드 10버전 이후) (0) | 2022.03.21 |