Search code examples
facebookfacebook-android-sdk

Finding What the Android Facebook SDK Version Is


How do I find out the version of the current SDK is installed or referenced by my application? I have looked through the class files and the manifest but there is no reference as to what version it is.

Thanks in advance.


Solution

  • You have FacebookSdkVersion class with the current version: 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";
    }
    

    Since this class is without modifier and you can't access it from your package, use a reflection. This will return you the sdk version:

    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;
    }