2013-10-07 94 views

回答

31

你有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

有一個公共API:

import com.facebook.Settings; 

Settings.getSdkVersion() 

「獲取當前版本Facebook的SDK爲Android作爲一個字符串。」

我不推薦使用反射來訪問包類 - 它們可能會在將來改變這種情況並破壞你的代碼,但是這個公共API應該被認爲是穩定的。

+0

我看不到可用的設置庫。我第一次使用它,我真的需要幫助來了解我的FB sdk版本 – saunlogan

1

最簡單的方法:

1.-轉到您的AndroidManifest.xml

2:看看你的底部導航視圖,有兩個標籤:文本和合並清單,點擊最後一個一。

3.-在右側將出現Manifest Sources,它是:例如,我有這樣的:facebook-android-sdk:4.20.0 manifest。

我知道它有點老,但我在2017年3月搜索了這個,並沒有像這樣的簡單答案。

相關問題