Подтвердить что ты не робот

Как проверить, работает HoneyComb или выше, и, соответственно, вызвать метод для этой версии?

Для Android версий 3.0 и выше я хочу вызвать определенный метод. Есть ли способ проверить, доступен ли какой-либо метод в текущей версии Android?

Чтобы быть более точным, мой MinSDK - 7 (Android 2.1), TargetSDK - 8 (Android 2.2), и мне нужно проверить если работает HoneyComb Android 3.0 или выше. В зависимости от этого, как я могу назвать этот метод HoneyComb?

Вторая часть вопроса возникает, потому что просто вызов метода HoneyComb не будет компилироваться, поскольку я создаю против 2.2.

4b9b3361

Ответ 1

Точнее, мой MinSDK - 7 (Android 2.1), TargetSDK - 8 (Android 2.2), и мне нужно проверить, работает ли HoneyComb Android 3.0 или выше. В зависимости от этого, как я могу назвать этот метод HoneyComb?

Шаг №1: Установите цель сборки на самый высокий уровень API, который вы хотите вызвать напрямую и, следовательно, скомпилируйте. Ваша цель сборки (например, compileSdkVersion в Android Studio, Project > Properties > Android в Eclipse) не связана с вашим android:targetSdkVersion.

Шаг №2: Как указывали другие ответы, вы можете условно вызывать методы в защитном блоке:

if (android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.HONEYCOMB) {
  // call something for API Level 11+
}

Вторая часть вопроса возникает, потому что просто вызов метода HoneyComb не будет компилироваться, поскольку я создаю против 2.2.

Вам нужно изменить цель сборки как уровень API 11 или выше, если вы хотите напрямую вызвать методы уровня API 11 или выше.

Ответ 2

if (Build.VERSION.SDK_INT >= x ) {}

x - число api, Honeycomb - 11 вы можете найти здесь цифры api: версии платформы