[Android Studio] 10장 - API 레벨 호환성 고려하기

이상협·2022년 9월 9일
0

안드로이드스튜디오

목록 보기
37/43

API 레벨 호환성 고려하기

// build.gradle API 레벨 설정
minSdk 21
targetSdk 32

위와 같이 설정하면 32버전의 API로 앱을 개발한다는 것을 의미하는데,
21버전에서도 오류가 발생하지 않고 동작해야 한다.

  • minSdk 설정값보다 상위 버전에서 제공하는 API를 사용한다면 호환성을 고려해야 함

@RequiresApi(Build.VERSION_CODES.[API 이름]

@RequiresApi(Build.VERSION_CODES.S)
fun noti() {
	...
    val builder: Notification.Builder = Notification.Builder(this, "1")
    	.setStyle(
        	Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)
        )
    ...
}

@RequiresApi 에너테이션을 추가하면 안드로이드 스튜디오에서 오류가 발생하지 않는다.

  • @TargetApi 에너테이션을 이용해도 됨
@TargetApi(Build.VERSION_CODES.S)
fun noti() {
	...
}

호환성 코드 처리

API 호환성 에너테이션은 안드로이드 스튜디오에서 오류를 무시하는 섲렁일 뿐이며 앱이 실행될 때 API 레벨 호환성 문제를 막으려면 직접 코드로 처리해 줘야 한다.

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
	val builder: Notification.Builder = Notification.Builder(this, "1")
    	.setStyle(
        	Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)
        )
)
  • Build.VERSION.SDK_INT는 앱이 실행되는 기기의 API 레벨

참고

  • Do it! 깡쌤의 안드로이드 프로그래밍 with 코틀린 (개정판)

0개의 댓글