// build.gradle API 레벨 설정
minSdk 21
targetSdk 32
위와 같이 설정하면 32버전의 API로 앱을 개발한다는 것을 의미하는데,
21버전에서도 오류가 발생하지 않고 동작해야 한다.
- minSdk 설정값보다 상위 버전에서 제공하는 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 레벨