В некоторых случаях требуется узнать версию 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