В некоторых случаях требуется узнать версию Android API непосредственно во время работы программы.
Пример подобной ситуации мы уже рассматривали ранее, когда речь шла о работе с событием onScrollChange для элементов управления ScrollView и HorizontalScrollView (напомним, что оно, доступно только начиная с API 23 (Android 6.0 или Marshmallow)).
В вышеупомянутом примере мы обращались к свойству SDK_INT, класса VERSION, которое возвращает номер версии API.
import android . os . Build ;
if ( Build . VERSION . SDK_INT >= Build . VERSION_CODES . M ) <
scroll . setOnScrollChangeListener ( new View . OnScrollChangeListener ( ) <
public void onScrollChange ( View v , int scrollX , int scrollY , int oldScrollX , int oldScrollY )
Toast . makeText ( getApplicationContext ( ) , String . valueOf ( scrollY ) , Toast . LENGTH_SHORT ) . show ( ) ;
Номер версии API возвращается в виде целого числа. Поэтому с ним можно работать непосредственно:
if ( Build . VERSION . SDK_INT == 17 ) <
Как получить токен аккаунта ВКонтакте | Где найти токен ВК | Как узнать токен API ВК
Либо сравнивать его с один из значений перечисления VERSION_CODES (как в первом примере). Нижеприведены значения перечисления VERSION_CODES в соответствии с номерами версий API и Android.
| Версия API | Значение перечисления VERSION_CODES | Версия Android |
| 1 | BASE | 1.0 |
| 2 | BASE_1_1 | 1.1 |
| 3 | CUPCAKE | 1.5 |
| 4 | DONUT | 2.0 |
| 5 | ECLAIR | 2.0. |
| 6 | ECLAIR_0_1 | 2.0.1 |
| 7 | ECLAIR_0_1 | 2.1 |
| 8 | FROYO | 2.2 |
| 9 | GINGERBREAD | 2.3 |
| 10 | GINGERBREAD_MR1 | 2.3.3 |
| 11 | HONEYCOMB | 3.0 |
| 12 | HONEYCOMB_MR1 | 3.1 |
| 13 | HONEYCOMB_MR1 | 3.2 |
| 14 | ICE_CREAM_SANDWICH | 4.0 |
| 15 | ICE_CREAM_SANDWICH_MR1 | 4.0.3 |
| 16 | JELLY_BEAN | 4.1 |
| 17 | JELLY_BEAN_MR1 | 4.2 |
| 18 | JELLY_BEAN_MR2 | 4.3 |
| 19 | KITKAT | 4.4 |
| 20 | KITKAT_WATCH | 4.4W |
| 21 | L | 5.0 |
| 21 | LOLLIPOP | 5.0 |
| 22 | LOLLIPOP_MR1 | 5.1 |
| 23 | M | 6.0 |
| 24 | N | 7.0 |
| 25 | N_MR1 | 7.1 |
| 26 | O | 8.0 |
| 27 | O_MR1 | 8.1 |
| 28 | P | 9.0 |
| 29 | Q | 10.0 |
API для начинающих. Пример VK. [1/5]
Значение L использовалось временно до перехода на LOLLIPOP. В более поздних версиях Android SDK оно сохранено (видимо для совместимости).
Это позволяет оперировать с номером версии API даже зная только версию Android.
Примечание
По просьбе одного из читателей 29.02.2020 таблица в статье была дополнена до Android 10.
Источник: streletzcoder.ru
VK API: как на php, автоматически вытягивать версию api?
Подскажите, можно ли автоматически вытягивать версию vk api?
API постоянно обновляется, и мои запросы, в какой-то момент могут перестать работать, из-за несовместимости версий. И я хочу этого избежать.
Как я могу послать запрос vk и вытянуть версию его api в переменную?
- Вопрос задан более года назад
- 205 просмотров
Комментировать
Решения вопроса 1
та еще зажигалка.
обновления можно найти тут https://dev.vk.com/reference/versions , тебе нужно сохранять последнюю минорную версию api и проверять наличие страницы новой версии
Ответ написан более года назад
Нравится 1 1 комментарий
Ответы на вопрос 1

Пока ты спишь — твой конкурент совершенствуется
версия api не просто так меняется. там могут измениться параметры как запроса так и ответа. вытягивание версии api твою программу за тебя не переделает под новое api.
p.s. просто вынеси версию в какой-нить .env и обновляйся вручную в одном месте со всеми тестами и проверками, что все работает правильно и ничего не упало.
Ответ написан более года назад
Нравится 2 4 комментария

Зато поможет гарантированно упасть, а не случайно выполниться с непредсказуемым результатом.

Дмитрий Гординский, что именно? вариант, когда ты автоматом не меняешь версию — программа будет работать на старой версии. никаких непредсказуемых результатов и не будет.
а когда ты будешь автоматом менять версию на новую — вот там как раз шанс и на падение и на непредсказуемые результаты
Шансов, что за пару версий, вызываемые методы изменятся настолько, что сломают мне вывод — минимальны. В каких случаях это может случиться? — В случае добавления новых обязательных полей. В случае смены нейминга полей. Причём в первом случае, я гарантировано получу общую ошибку, из списка ошибок, как и при устаревшей версии api.
А какие плюсы? Мой код будет жить дольше, хоть и с не самым актуальным функционалом, но выполняющим свои задачи. А если всё посыпется, мне в любом случае читать доку.

MyQuestion, как раз так и твой код проживет дольше если ты НЕ будешь обновляться на каждую вышедшую версию. вк официально поддерживает каждую версию 2 года. не официально — намного дольше. т.е. даже теоретически твой код проживет без проблем как минимум 2 года. а вот если ты будешь переходить каждый раз на новую — с каждым этим переходом всегда есть шанс, что твой код перестанет работать
Источник: qna.habr.com
Узнаём версию Android API в приложении
В некоторых случаях требуется узнать версию Android API непосредственно во время работы программы.
Пример подобной ситуации мы уже рассматривали ранее, когда речь шла о работе с событием onScrollChange для элементов управления ScrollView и HorizontalScrollView (напомним, что оно, доступно только начиная с API 23 (Android 6.0 или Marshmallow)).
В вышеупомянутом примере мы обращались к свойству SDK_INT, класса VERSION, которое возвращает номер версии API.
Номер версии API возвращается в виде целого числа. Поэтому с ним можно работать непосредственно:
if (Build.VERSION.SDK_INT == 17)
Либо сравнивать его с один из значений перечисления VERSION_CODES (как в первом примере). Нижеприведены значения перечисления VERSION_CODES в соответствии с номерами версий API и Android.
| Версия API | Значение перечисления VERSION_CODES | Версия Android |
| 1 | BASE | 1.0 |
| 2 | BASE_1_1 | 1.1 |
| 3 | CUPCAKE | 1.5 |
| 4 | DONUT | 2.0 |
| 5 | ECLAIR | 2.0. |
| 6 | ECLAIR_0_1 | 2.0.1 |
| 7 | ECLAIR_0_1 | 2.1 |
| 8 | FROYO | 2.2 |
| 9 | GINGERBREAD | 2.3 |
| 10 | GINGERBREAD_MR1 | 2.3.3 |
| 11 | HONEYCOMB | 3.0 |
| 12 | HONEYCOMB_MR1 | 3.1 |
| 13 | HONEYCOMB_MR1 | 3.2 |
| 14 | ICE_CREAM_SANDWICH | 4.0 |
| 15 | ICE_CREAM_SANDWICH_MR1 | 4.0.3 |
| 16 | JELLY_BEAN | 4.1 |
| 17 | JELLY_BEAN_MR1 | 4.2 |
| 18 | JELLY_BEAN_MR2 | 4.3 |
| 19 | KITKAT | 4.4 |
| 20 | KITKAT_WATCH | 4.4W |
| 21 | L | 5.0 |
| 21 | LOLLIPOP | 5.0 |
| 22 | LOLLIPOP_MR1 | 5.1 |
| 23 | M | 6.0 |
| 24 | N | 7.0 |
| 25 | N_MR1 | 7.1 |
| 26 | O | 8.0 |
| 27 | O_MR1 | 8.1 |
| 28 | P | 9.0 |
| 29 | Q | 10.0 |
Значение L использовалось временно до перехода на LOLLIPOP. В более поздних версиях Android SDK оно сохранено (видимо для совместимости).
Это позволяет оперировать с номером версии API даже зная только версию Android.
Примечание
По просьбе одного из читателей 29.02.2020 таблица в статье была дополнена до Android 10.
Источник: mywebcenter.ru