Finding What the Android Facebook SDK Version Is
The most easy way:
1.- Go to your AndroidManifest.xml
2.- Look at your Bottom Navigation View, there is two tabs: Text and Merged Manifest, click on the last one.
3.- On the right side will appear the Manifest Sources, there it is: for example i have this: facebook-android-sdk:4.20.0 manifest.
I know its a bit old, but i searched this in march of 2017 and there is no an easy answer like this.
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;
}
There is a public API:
import com.facebook.Settings;
Settings.getSdkVersion()
"Gets the current version of the Facebook SDK for Android as a string."
I don't recommend using reflection to access the package class - they may change that in the future and break your code, but this public API should be considered stable.