我有一个活动供用户使用 Facebook 登录。我使用 facebook-android-sdk v4.0.0。但是当用户点击登录按钮时,不会触发登录回调。显示进度条后,自动开始之前的活动,日志上不显示任何错误,而不是触发登录回调。
在注册活动中,
private CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
callbackManager = CallbackManager.Factory.create();
LoginButton loginButton = (LoginButton) findViewById(R.id.login_btn);
loginButton.setReadPermissions(Arrays.asList("user_friends", "email"));
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.i("Login : ", "Success");
}
@Override
public void onCancel() {
Log.i("Login : ", "Cancel");
}
@Override
public void onError(FacebookException e) {
Log.e("Login Error : ", e.getMessage() + "");
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
我还将元数据元素添加到应用程序元素,并将 FacebookActivity 添加到清单。另外,在Application中完成了facebook SDK的初始化:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
}
我的代码有什么问题吗?感谢您的任何建议!
Edit
我发现自己的代码出了什么问题。我使用 no_history 标志启动 SignUpActivity。删除该标志后,现在一切都正常了。