2012-07-04 4 views
2

젤리 빈이 출시되었으며 멋진 기능이 몇 가지 있습니다. 내 질문은 가능한 한 많은 장치를 대상으로하고 싶지만 가능하다면 가장 높은 API 수준의 모든 기능을 사용할 수있는 응용 프로그램을 보유하는 것입니다.Android API 레벨 이해

그래서 당신이 장치를 실행하는 경우 실행할 때만 말을 코드의 특정 부분을 제한하는 방법이 있나요 나는이

<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="16"/> 

이 내가 API (16)에 내 응용 프로그램을 구축, 예를 들어 말 그것을 실행할 수 있습니까? 예를 들어 NFC를 원한다면 진저 브레드 기기 이상에서만이 기능을 사용할 수 있습니다. 그렇지 않은 경우에는 기능이 표시되지 않습니다.

답변

6

기본적으로 Android 지원 v4를 참조 라이브러리로 포함하여 Android 3.0에서 도입 한 새로운 API (예 : 조각 엔진)를 많이 사용할 수 있습니다.

에게 당신은 여기에 몇 가지 참조 찾을 수 있습니다

: 여기

http://developer.android.com/reference/android/support/v4/app/package-summary.html

과 : 당신은 예를 들어, NFC 기능을 사용하려면

http://developer.android.com/tools/extras/support-library.html

다른 한편으로는, 당신은이를 선언 할 수 있습니다 사용 특징 :

<uses-feature android:name="android.hardware.nfc" android:required="true" /> 

또는, 당신은이 기능을 지원하지 않습니다와 장치에 대한 코드 대안을 제공하려는 경우, 당신은 그런 일 할 수 있습니다

if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC)) { 
     //code for devices with NFC support 
} else { 
     //code for others devices 
} 
+0

예를 들어 v4를 포함하는 API 레벨 16을 사용하여 건물을 만들고 있는데 내 장치에서 API 9 진저 브레드를 실행하는 경우 진저 브레드를 실행하는 장치의 조각을 얻을 수 있습니까? 그래서 v4 api는 API 레벨 16에 포함 된 것을 오버라이드하여 진저 비드가 이해할 수 있도록 컴파일합니다. – Springy

+1

예, 확실합니다 .. –

2

ADT의 R16 때문에, 우리는 보풀이 스캔하고 모든 새로운 API, 확인을위한 프로젝트를 확인할 수 있습니다을 내 답변 here 자세한 내용은

NewApi : 모든 대상 API 버전에서 지원되지 않는 API에 대한 API 액세스를 찾습니다.

또는, 대신 조건 분기 기능에 의해 코드 (스테파노 '답)의, 할 수도 있습니다 조건 분기 API 수준에 따라 코드 :이 도움이

if (android.os.Build.VERSION.SDK_INT >= 9) { 
    // do NFC stuff 
} 

희망.

관련 문제