看起来FacebookSDK的LoginManager只包含一个android.support.v4.app.Fragment参数的方法,而没有android.app.Fragment的方法。不幸的是,v4.app.Fragment对我来说不是一个选择。我尝试在Activity和v4.app.Fragment中做同样的事情,但它确实有效。但是,我不能使用其中任何一个。
private void init() {
callbackManager = CallbackManager.Factory.create();
loginManager = LoginManager.getInstance();
loginManager.registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
onLoginSuccess(loginResult);
}
@Override
public void onCancel() {
onLogInFailed();
}
@Override
public void onError(FacebookException e) {
onLogInFailed();
}
});
}
private void logIn() {
Global.log("logging in to facebook");
Collection<String> permissions = Arrays.asList("public_profile", "email");
loginManager.logInWithReadPermissions(getActivity(), permissions);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
有问题的方法是loginManager.logInWithReadPermissions,可以将活动或v4.app.Fragment作为参数,但不是我需要的Fragment类型。
有人可以帮忙吗?
答案 0 :(得分:0)
它是在Facebook SDK版本4。8。0(2015年11月11日)中实现的,请看一下:
添加了对使用本机的登录管理器和UI元素的支持 片段(android.app.Fragment)
文档也已更新:
CallbackManager - 用于将呼叫路由回Facebook SDK和您的 注册回调。您应该从启动活动中调用它 或片段onActivityResult调用。
来源:
https://developers.facebook.com/docs/facebook-login/android https://developers.facebook.com/docs/android/change-log-4.x#4_8_0