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