메뉴 닫기
공지사항 : > 공지사항

[안드로이드] 안드로이드 12 (targetSdk 31) 이상 선언 시, 점검사항

작성자
관리자
작성일
2022.05.04 16:36
조회
742


targetSdk31 이상, 선언시에는 안드로이드 정책상 변경점들이 다수 발생 하므로 충분히 숙지 후, 적용하시기 바랍니다.

1. AndroidManifest.xml 의 Intent-filter의 exported 명시적 선언

    Launcher Activity, Receiver 등 Intent-filter가 적용되는 경우

    https://developer.android.com/about/versions/12/behavior-changes-12?hl=ko#exported

첨부파일 : AndroidManifest.xml 참고 

2. PendingIntent 시용시, flag 적용 

   오류 사항 

 java.lang.IllegalArgumentException: com.morpheus.demo: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.

 조치 : 오류가 발생하는 코드를 추적하여, FLAG_IMMUTABLE or FLAG_MUTABLE 를 적용 

예시 :  FLAG_IMMUTABLE를 적용한 예시

   - 기존 

PendingIntent mPendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_CANCEL_CURRENT);

  - 변경 

PendingIntent mPendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_IMMUTABLE);


3. Push 라이브러리 교체 

   - 방법 1 : jobdispatcher 라이브러리 수정 방법

   https://developer.uracle.co.kr/faq/?uid=288&mod=document&pageid=1

  - 방법2 : 푸시 5.2 적용 : 마이그레이션 가이드

    UPNS  연동 시  :  https://wiki.uracle.co.kr/push/client/reference/5-1_to_5-2_migration

    FCM 연동 시 : https://wiki.uracle.co.kr/push/client/reference/Migration_FCM_5_1_to_5_2

  - 푸시 5.2 신규 적용 가이드 

    https://wiki.uracle.co.kr/ko/push/client#android-ver52

  참고 :   푸시 라이브러리의 경우 샘플 프로젝트에 포함되어 있으며, IDE를 통한 배포는 5월 말 공식적으로 배포 예정임.