2017-12-26 17 views
1

현재 유지 관리하고있는 라이브러리를 업데이트하고 있는데 메소드 서명에 MediaDataSource을 사용하는 메소드를 제공하고 싶지만 API 23+에서만 사용할 수 있습니다. 나는 또한 자원 예를 layout-v13를 들어, 폴더 이름에 백업을 사용자 정의 할 수 있습니다 알고Android의 이전 버전과의 호환성 및 방법

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
    // some API specific code 

: 난 당신과 같은 검사를 통해 이전 버전과의 호환성을 확인해야합니다 안드로이드 문서의 상태를 알고있다.

@Version Build.VERSION_CODES.HONEYCOMB // not real code, just what I'm thinking 
public void setData(MediaDataSource mediaDataSource) { 
    // some code 
} 

답변

2

예, 보통은로 실행하면 내 질문은 같은 구조를 제공하는 이런 종류의 또는 내 코드는 여전히 < API (23)합니까 안드로이드에서 작동하도록 비슷한의 검사를 추가 할 수있다 API 호환성 문제 Android Studio에서는 경고시 alt+enter을 누르면 다양한 솔루션을 제공합니다.

Oreo 사용자 (API 26) 만 사용할 수있는 Android에서 NotificationChannel의 예를보세요. 다음을 목표로 삼아야합니다.

옵션 1 : 다른 문 당신은 이미 귀하의 질문이 언급 한 경우

옵션 2 : @TargetAPI 주석

@TargetApi(Build.VERSION_CODES.O) 
private void createNotification() { 
NotificationChannel notificationChannel = new NotificationChannel("123", "newNotification", NotificationManager.IMPORTANCE_DEFAULT);} 

옵션 3 : @RequiresAPI 주석

@RequiresApi(api = Build.VERSION_CODES.O) 
private void createNotification() { 
NotificationChannel notificationChannel = new NotificationChannel("123", "newNotification", NotificationManager.IMPORTANCE_DEFAULT); 
}