Подтвердить что ты не робот

Поиск версии Android-SDK для Android

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

Спасибо заранее.

4b9b3361

Ответ 1

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

Ответ 2

Существует общедоступный API:

import com.facebook.Settings;

Settings.getSdkVersion()

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

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

Ответ 3

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

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

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

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

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