투케이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); 
        }
    }

 

반응형
Comments