Программно получить уровень API Android на устройстве?

Как узнать, какой уровень API используется моим устройством?

Версия прошивки 1.6. Означает ли это, что он использует API Level 4?

Вы можете получить уровень API программно с помощью постоянной системы (Build.VERSION.SDK_INT). Например, вы можете запустить некоторый fragment кода, который требует более нового API, следующим образом (он будет выполняться, если уровень API текущего устройства составляет не менее 4):

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.DONUT) { } 

Чтобы получить доступную для пользователя версию Android, используйте:

 Build.VERSION.RELEASE 

Что вам нужно: http://developer.android.com/reference/android/os/Build.VERSION_CODES.html

  Code Name Version Api level (no code name) 1.0 API level 1 (no code name) 1.1 API level 2 Cupcake 1.5 API level 3, NDK 1 Donut 1.6 API level 4, NDK 2 Eclair 2.0 API level 5 Eclair 2.0.1 API level 6 Eclair 2.1 API level 7, NDK 3 Froyo 2.2.x API level 8, NDK 4 Gingerbread 2.3 - 2.3.2 API level 9, NDK 5 Gingerbread 2.3.3 - 2.3.7 API level 10 Honeycomb 3.0 API level 11 Honeycomb 3.1 API level 12, NDK 6 Honeycomb 3.2.x API level 13 Ice Cream Sandwich 4.0.1 - 4.0.2 API level 14, NDK 7 Ice Cream Sandwich 4.0.3 - 4.0.4 API level 15, NDK 8 Jelly Bean 4.1.x API level 16 Jelly Bean 4.2.x API level 17 Jelly Bean 4.3.x API level 18 KitKat 4.4 - 4.4.2 API level 19 KitKat (for wearable)4.4 API level 20 Lollipop 5.0 API level 21 Lollipop 5.1 API level 22 Marshmallow 6.0 API level 23 Nougat 7.0 API level 24 Nougat 7.1.1 API level 25 Oreo 8.0 API level 26 

Для уровня API> = 4 вы можете использовать Build.VERSION.SDK_INT

 private String getAndroidVersion(int sdk) { switch (sdk) { case 1: return "Android 1.0"; case 2: return "Petit Four (Android 1.1)"; case 3: return "Cupcake (Android 1.5)"; case 4: return "Donut (Android 1.6)"; case 5: return "Eclair (Android 2.0)"; case 6: return "Eclair (Android 2.0.1)"; case 7: return "Eclair (Android 2.1)"; case 8: return "Froyo (Android 2.2)"; case 9: return "Gingerbread (Android 2.3)"; case 10: return "Gingerbread (Android 2.3.3)"; case 11: return "Honeycomb (Android 3.0)"; case 12: return "Honeycomb (Android 3.1)"; case 13: return "Honeycomb (Android 3.2)"; case 14: return "Ice Cream Sandwich (Android 4.0)"; case 15: return "Ice Cream Sandwich (Android 4.0.3)"; case 16: return "Jelly Bean (Android 4.1)"; case 17: return "Jelly Bean (Android 4.2)"; case 18: return "Jelly Bean (Android 4.3)"; case 19: return "KitKat (Android 4.4)"; case 20: return "KitKat Watch (Android 4.4)"; case 21: return "Lollipop (Android 5.0)"; case 22: return "Lollipop (Android 5.1)"; case 23: return "Marshmallow (Android 6.0)"; case 24: return "Nougat (Android 7.0)"; case 25: return "Nougat (Android 7.1.1)"; case 26: return "Oreo (Android 8.0)"; case 27: return "Oreo (Android 8.1)"; default: return ""; } } 

Применение

 String android_os = getAndroidVersion(android.os.Build.VERSION.SDK_INT); 

Очень просто:

 String manufacturer = Build.MANUFACTURER; String model = Build.MODEL; int version = Build.VERSION.SDK_INT; String versionRelease = Build.VERSION.RELEASE; Log.e("MyActivity", "manufacturer " + manufacturer + " \n model " + model + " \n version " + version + " \n versionRelease " + versionRelease ); 

Вывод:

 E/MyActivity: manufacturer samsung model SM-T310 version 19 versionRelease 4.4.2 

Чтобы получить текущее API вашего устройства:

 int MyDeviceAPI = Build.VERSION.SDK_INT; 

в первых версиях был использован Build.VERSION.SDK

  String myAPI= Build.VERSION.SDK; 

но теперь не рекомендуется !.

SDK Это поле было устарело в API уровне 4. Используйте SDK_INT, чтобы легко получить это как целое число.

теперь вы должны использовать: SDK_INT Добавлен в уровень API 4:

  int myAPI = Build.VERSION.SDK_INT; 

SDK_INT . Пользовательская версия SDK для версии; его возможные значения определены в Build.VERSION_CODES.

больше информации:

http://developer.android.com/reference/android/os/Build.VERSION.html

Вы можете получить информацию о устройстве, как показано ниже.

 Log.d(TAG, "RELEASE : " + Build.VERSION.RELEASE); Log.d(TAG, "SDK : " + Build.VERSION.SDK_INT); 

и может получить историю версий кода Android из ОС.

 for (Field field : Build.VERSION_CODES.class.getDeclaredFields()) { field.setAccessible(true); Log.d(TAG, field.get(this) + " -> " + field.getName()); } 

Это выводится.

 RELEASE : 5.1.1 SDK : 22 1 -> BASE 2 -> BASE_1_1 3 -> CUPCAKE 10000 -> CUR_DEVELOPMENT 4 -> DONUT 5 -> ECLAIR 6 -> ECLAIR_0_1 7 -> ECLAIR_MR1 8 -> FROYO 9 -> GINGERBREAD 10 -> GINGERBREAD_MR1 11 -> HONEYCOMB 12 -> HONEYCOMB_MR1 13 -> HONEYCOMB_MR2 14 -> ICE_CREAM_SANDWICH 15 -> ICE_CREAM_SANDWICH_MR1 16 -> JELLY_BEAN 17 -> JELLY_BEAN_MR1 18 -> JELLY_BEAN_MR2 19 -> KITKAT 20 -> KITKAT_WATCH 21 -> L 21 -> LOLLIPOP 22 -> LOLLIPOP_MR1 

поэтому, объедините эти и официальные версии .

 API VERSION_CODE VERSION CODE_NAME 1 BASE 1 (no code name) 2 BASE_1_1 1.1 (no code name) 3 CUPCAKE 1.5 Cupcake 4 DONUT 1.6 Donut 5 ECLAIR 2 Eclair 6 ECLAIR_0_1 2.0.1 Eclair 7 ECLAIR_MR1 2.1 Eclair 8 FROYO 2.2.x Froyo 9 GINGERBREAD 2.3 - 2.3.2 Gingerbread 10 GINGERBREAD_MR1 2.3.3 - 2.3.7 Gingerbread 11 HONEYCOMB 3 Honeycomb 12 HONEYCOMB_MR1 3.1 Honeycomb 13 HONEYCOMB_MR2 3.2.x Honeycomb 14 ICE_CREAM_SANDWICH 4.0.1 - 4.0.2 Ice Cream Sandwich 15 ICE_CREAM_SANDWICH_MR1 4.0.3 - 4.0.4 Ice Cream Sandwich 16 JELLY_BEAN 4.1.x Jelly Bean 17 JELLY_BEAN_MR1 4.2.x Jelly Bean 18 JELLY_BEAN_MR2 4.3.x Jelly Bean 19 KITKAT 4.4 - 4.4.4 KitKat 20 KITKAT_WATCH 4.4W KitKat Watch 21 LOLLIPOP 5 Lollipop 22 LOLLIPOP_MR1 5.1 Lollipop 23 M 6 Marshmallow 24 N 7 Nougat 25 N_MR1 7.1 Nougat 

Это говорит о том, что код версии API25 является N_MR1.

  • Проблема при использовании пользовательского шрифта - «родной шрифт не может быть создан»
  • Android: поддержка нескольких экранов
  • Как установить таймер в android
  • android получить все контакты
  • Как перемещать маркер вдоль полилинии с помощью карты google
  • Как программно очищать данные приложения
  • android, что не так с openFileOutput?
  • Android onViewClickListener не работает
  • Как отключить режим сдвига BottomNavigationView?
  • Способ получения всех EditTexts в представлении
  • Сетка изображений внутри ScrollView
  • Давайте будем гением компьютера.