facebook facebook-android-sdk

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