如何找出我的应用程序安装或引用的当前 SDK 的版本?我查看了类文件和清单,但没有关于它是什么版本的参考。
提前致谢。
你有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;
}
最简单的方法:
1.- 转到您的 AndroidManifest.xml
2.- 查看底部导航视图,有两个选项卡:文本和合并清单,单击最后一个。
3.- 在右侧会出现 Manifest Sources,它是:例如我有这个:facebook-android-sdk:4.20.0 manifest。
我知道它有点旧,但我在 2017 年 3 月搜索了这个,没有像这样简单的答案。
有一个公共 API:
import com.facebook.Settings;
Settings.getSdkVersion()
“获取当前版本的 Android 版 Facebook SDK 作为字符串。”
我不建议使用反射来访问包类——它们将来可能会改变它并破坏你的代码,但这个公共 API 应该被认为是稳定的。
迟到了,但我在尝试@sromku 的答案时又发现了一门课。
有一个类叫做 FacebookSdk:import com.facebook.FacebookSdk;
它公开了两种我们可以尝试的有用方法:
getGraphApiVersion()
getSdkVersion()