Как узнать версию Android SDK для Facebook

Как узнать, какая версия текущего SDK установлена ​​или на которую ссылается мое приложение? Я просмотрел файлы классов и манифест, но нет ссылки на его версию.

Заранее спасибо.


person StuStirling    schedule 07.10.2013    source источник


Ответы (4)


У вас есть класс 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;
}
person sromku    schedule 07.10.2013

Самый простой способ:

1.- Перейдите к своему AndroidManifest.xml

2.- Посмотрите на свой нижний навигационный вид, есть две вкладки: «Текст» и «Объединенный манифест», нажмите на последнюю.

3.- С правой стороны появятся источники манифеста, вот они: например, у меня есть это: facebook-android-sdk:4.20.0 manifest.

Я знаю, что это немного устарело, но я искал это в марте 2017 года, и такого простого ответа не существует.

person Erick    schedule 26.03.2017
comment
Это сработало идеально для меня. Спасибо! Просто обратите внимание: это специально для Android Studio. - person lenz; 18.11.2020

Есть публичный API:

import com.facebook.Settings;

Settings.getSdkVersion()

«Получает текущую версию Facebook SDK для Android в виде строки».

Я не рекомендую использовать отражение для доступа к классу пакета — они могут изменить это в будущем и сломать ваш код, но этот общедоступный API следует считать стабильным.

person rbgrn    schedule 29.09.2014
comment
Я не вижу доступной библиотеки настроек. Я использую его впервые, и мне очень нужна помощь, чтобы узнать версию FB sdk. - person pcsaunak; 06.11.2017

Поздно отвечать, но я нашел еще один класс, пытаясь ответить @sromku.

Существует один класс под названием FacebookSdk: import com.facebook.FacebookSdk;

Он предоставляет 2 полезных метода, которые мы можем попробовать:

  1. getGraphApiVersion()
  2. getSdkVersion()
person Rushi M Thakker    schedule 05.08.2020