查找Android Facebook SDK版本是什么

时间:2013-10-07 13:48:44

标签: facebook facebook-android-sdk

如何查看我的应用程序安装或引用当前SDK的版本?我查看了类文件和清单,但没有关于它是什么版本的参考。

提前致谢。

4 个答案:

答案 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;

它公开了两种可以尝试的有用方法:

  1. getGraphApiVersion()
  2. getSdkVersion()