Notice
Recent Posts
Recent Comments
Link
투케이2K
416. (android/java) [android 12 / target 31] FCM 파이어베이스 푸시 알림 노티피케이션 클릭 PendingIntent 펜딩 인텐트 설정 본문
Android
416. (android/java) [android 12 / target 31] FCM 파이어베이스 푸시 알림 노티피케이션 클릭 PendingIntent 펜딩 인텐트 설정
투케이2K 2022. 11. 29. 09:32[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
// -----------------------------------------
// [노티피케이션 알림 클릭 시 인텐트 설정 정의]
Intent intent = null;
PendingIntent pendingIntent = null;
try {
// -----------------------------------------
// [메인 실행 중인 경우 >> 백그라운드에서 포그라운드 전환] / [메인 실행 중이 아닌 경우 >> 인트로 화면 설정]
String checkMain = String.valueOf(topName);
if (checkMain != null && checkMain.length()>0 && !checkMain.equals("") && !checkMain.contains("null")) { // 메인 화면 >> 실행 중인 경우
intent = new Intent(getApplication(), P_PushAlert.class);
intent.putExtra("id", String.valueOf(notiId));
//intent = new Intent(getApplication(), A_Intro.class);
}
// -----------------------------------------
else { // 메인 화면 >> 실행 중이 아닌 경우
intent = new Intent(getApplication(), A_Intro.class);
}
topName = "";
// -----------------------------------------
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags (Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.putExtra("tittle", S_FinalData.PUSH_TITLE);
intent.putExtra("message", String.valueOf(messagae));
intent.putExtra("totalPush", String.valueOf(totalData)); // [전달 받은 전체 포맷 타입]
// -----------------------------------------
// TODO [안드로이드 타겟 31 이상 분기 처리]
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){ // [타겟 31 이상]
pendingIntent = PendingIntent.getActivity(getApplication(), 1, intent,PendingIntent.FLAG_IMMUTABLE);
}
else { // [타겟 31 미만]
pendingIntent = PendingIntent.getActivity(getApplication(), 1, intent,PendingIntent.FLAG_CANCEL_CURRENT);
}
// -----------------------------------------
}
catch (Exception e){
e.printStackTrace();
}
// -----------------------------------------
반응형
'Android' 카테고리의 다른 글
Comments