Notice
Recent Posts
Recent Comments
Link
투케이2K
226. (AndroidStudio/android/java) 파이어베이스 푸시 알림 전송 시 사용자 정의 json 타입 추가 방법 본문
Android
226. (AndroidStudio/android/java) 파이어베이스 푸시 알림 전송 시 사용자 정의 json 타입 추가 방법
투케이2K 2021. 11. 28. 10:55[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : java
[방법 설명]
// [파이어베이스 푸시 전송 주소]
post 방식 : https://fcm.googleapis.com/fcm/send
// [파이어베이스 전송 json 타입]
{
"data" : {
"title" : "Push Test",
"body" : "Talend API 푸시테스트",
"sort" : 2
},
"to":"d2fBYJVLSV6mgiyThmeDN6:APA90_dS ... ",
"Android": {
"priority": "high"
},
"priority": 10
}
[소스 코드]
// TODO [파이어베이스 푸시 알림 수신 처리 부분]
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.i("---","---");
Log.w("//===========//","================================================");
Log.i("","\n"+"[C_FirebaseMessagingService >> onMessageReceived() :: 파이어베이스 푸시 알림 수신]");
Log.i("","\n"+"--------------------");
Log.i("","\n"+"[getFrom() :: "+String.valueOf(remoteMessage.getFrom())+"]");
Log.i("","\n"+"--------------------");
Log.i("","\n"+"[getData() :: "+String.valueOf(remoteMessage.getData())+"]");
Log.i("","\n"+"--------------------");
Log.i("","\n"+"[getNotification() :: "+String.valueOf(remoteMessage.getNotification())+"]");
Log.w("//===========//","================================================");
Log.i("---","---");
// [세부 수신 받은 메시지 내용 확인 실시]
if(remoteMessage.getData() != null
&& remoteMessage.getData().isEmpty() == false
&& String.valueOf(remoteMessage.getData().get("title")) != null
&& String.valueOf(remoteMessage.getData().get("title")).length() > 0
&& String.valueOf(remoteMessage.getData().get("body")) != null
&& String.valueOf(remoteMessage.getData().get("body")).length() > 0) {
type = "getData";
title = String.valueOf(remoteMessage.getData().get("title"));
messagae = String.valueOf(remoteMessage.getData().get("body"));
// [사용자 정의 sort json 값 확인 실시]
if (remoteMessage.getData().containsKey("sort")) {
sort = Integer.parseInt(remoteMessage.getData().get("sort"));
}
}
else if(remoteMessage.getNotification() != null
&& remoteMessage.getNotification().getTitle().isEmpty() == false
&& remoteMessage.getNotification().getBody().isEmpty() == false
&& String.valueOf(remoteMessage.getNotification().getTitle()) != null
&& String.valueOf(remoteMessage.getNotification().getTitle()).length() > 0
&& String.valueOf(remoteMessage.getNotification().getBody()) != null
&& String.valueOf(remoteMessage.getNotification().getBody()).length() > 0){
type = "getNotification";
title = String.valueOf(remoteMessage.getNotification().getTitle());
messagae = String.valueOf(remoteMessage.getNotification().getBody());
}
else {
type = "NONE";
title = "";
messagae = "";
sort = 3;
}
// [SEARCH FAST] : [푸시 알림 메시지 확인]
Log.i("---","---");
Log.w("//===========//","================================================");
Log.i("","\n"+"[C_FirebaseMessagingService >> onMessageReceived() :: 파이어베이스 푸시 알림 내용 확인]");
Log.i("","\n"+"--------------------");
Log.i("","\n"+"[type :: "+String.valueOf(type)+"]");
Log.i("","\n"+"--------------------");
Log.i("","\n"+"[title :: "+String.valueOf(title)+"]");
Log.i("","\n"+"--------------------");
Log.i("","\n"+"[message :: "+String.valueOf(messagae)+"]");
Log.i("","\n"+"--------------------");
Log.i("","\n"+"[sort :: "+String.valueOf(sort)+"]");
Log.w("//===========//","================================================");
Log.i("---","---");
// [SEARCH FAST] : [오레오 버전 분기 처리]
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { //오레오 버전 이상
startForegroundService(sort);
}
else { //오레오 이하 노티피케이션 호출
startBackgroundService(sort);
}
}
반응형
'Android' 카테고리의 다른 글
Comments