Android: получить TargetSDKVersion во время выполнения

Могу ли я использовать использованную TargetSDKVersion во время выполнения?

Это связано с тем, что WebView в Android API 19> обрабатывает пиксели по-разному, чем до 19.

Это для библиотеки, и поэтому я бы не хотел, чтобы разработчик вводил ее вручную.

Мой комментарий: Я использую свой Nexus 5 API 21 Lollipop. Изменение TargetSDKVersion изменяет способ, которым javascript html читает ширину на кратное плотности экрана. Я только что изменил его на 14, а затем на 19, и я подтверждаю это.

О целевой версии SDK, посмотрите на класс ApplicationInfo (получите отсюда )

int version = 0; IPackageManager pm = AppGlobals.getPackageManager(); try { ApplicationInfo applicationInfo = pm.getApplicationInfo(yourAppName, 0); if (applicationInfo != null) { version = applicationInfo.targetSdkVersion; } } 

ИЛИ

Если говорить о версии ОС OS

Класс сборки содержит информацию о версии

 android.os.Build.VERSION.SDK_INT 

Это еще один способ получить targetSdkVersion моего приложения во время выполнения, используя Android Studio :

 try { PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0); int targetSdkVersion = packageInfo.applicationInfo.targetSdkVersion; } catch (PackageManager.NameNotFoundException e) { Log.e(TAG, e.getMessage()); } 

Значение targetSDKVersion определяется в файле build.gradle

  defaultConfig { applicationId "com.tuna.hello.androidstudioapplication" minSdkVersion 9 targetSdkVersion 22 versionCode 12 versionName "1.0" } 

В моем случае я сделал это

 int targetSdkVersion = getApplicationContext().getApplicationInfo().targetSdkVersion; 

Имея следующую конфигурацию в телефоне Android Marshmallow (API 23):

 defaultConfig { applicationId "com.mytestapp" minSdkVersion 9 targetSdkVersion 22 versionCode 1 versionName "1.0.0" } 

Еще один прямой подход для получения фактического запуска приложения targetSdkVersion :

 Context mContext = getApplicationContext(); int targetSdkVersion = mContext.getApplicationInfo().targetSdkVersion; // Outputs 22 int mobileSdkVersion = Build.VERSION.SDK_INT; // Outputs 23