Encontrar lo que es la versión de Android SDK de Facebook
facebook-android-sdk (3)
¿Cómo puedo saber si mi aplicación instala o hace referencia a la versión del SDK actual? He revisado los archivos de clase y el manifiesto, pero no hay ninguna referencia sobre qué versión es.
Gracias por adelantado.
Hay una API pública:
import com.facebook.Settings;
Settings.getSdkVersion()
"Obtiene la versión actual del SDK de Facebook para Android como una cadena".
No recomiendo usar la reflexión para acceder a la clase de paquete: pueden cambiar eso en el futuro y romper su código, pero esta API pública debe considerarse estable.
La forma más fácil:
1.- Ir a tu AndroidManifest.xml
2.- Mire su Vista de navegación inferior, hay dos pestañas: Texto y Manifiesto fusionado, haga clic en la última.
3.- En el lado derecho aparecerán las Fuentes de manifiesto, ahí está: por ejemplo tengo esto: facebook-android-sdk: 4.20.0 manifest.
Sé que es un poco viejo, pero lo busqué en marzo de 2017 y no hay una respuesta fácil como esta.
Tienes la clase FacebookSdkVersion
con la versión actual: 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";
}
Dado que esta clase no tiene modificador y no puede acceder a ella desde su paquete, use una reflexión. Esto te devolverá la versión 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;
}