Как узнать, какая версия текущего SDK установлена или на которую ссылается мое приложение? Я просмотрел файлы классов и манифест, но нет ссылки на его версию.
Заранее спасибо.
Как узнать, какая версия текущего SDK установлена или на которую ссылается мое приложение? Я просмотрел файлы классов и манифест, но нет ссылки на его версию.
Заранее спасибо.
У вас есть класс FacebookSdkVersion
с текущей версией: https://github.com/facebook/facebook-android-sdk/blob/master/facebook/src/com/facebook/FacebookSdkVersion.java
final class FacebookSdkVersion {
public static final String BUILD = "3.5.2";
public static final String MIGRATION_BUNDLE = "fbsdk:20130708";
}
Поскольку этот класс не имеет модификатора, и вы не можете получить к нему доступ из своего пакета, используйте отражение. Это вернет вам версию SDK:
private String getFacebookSDKVersion()
{
String sdkVersion = null;
ClassLoader classLoader = getClass().getClassLoader();
Class<?> cls;
try
{
cls = classLoader.loadClass("com.facebook.FacebookSdkVersion");
Field field = cls.getField("BUILD");
sdkVersion = String.valueOf(field.get(null));
}
catch (ClassNotFoundException e)
{
// error
}
catch (NoSuchFieldException e)
{
// error
}
catch (IllegalArgumentException e)
{
// error
}
catch (IllegalAccessException e)
{
// error
}
return sdkVersion;
}
Самый простой способ:
1.- Перейдите к своему AndroidManifest.xml
2.- Посмотрите на свой нижний навигационный вид, есть две вкладки: «Текст» и «Объединенный манифест», нажмите на последнюю.
3.- С правой стороны появятся источники манифеста, вот они: например, у меня есть это: facebook-android-sdk:4.20.0 manifest.
Я знаю, что это немного устарело, но я искал это в марте 2017 года, и такого простого ответа не существует.
Есть публичный API:
import com.facebook.Settings;
Settings.getSdkVersion()
«Получает текущую версию Facebook SDK для Android в виде строки».
Я не рекомендую использовать отражение для доступа к классу пакета — они могут изменить это в будущем и сломать ваш код, но этот общедоступный API следует считать стабильным.