我尽力遵循Facebook上的开发人员指南,我为MainActivity
提出了以下内容:
public class MainActivity extends Activity {
LoginButton loginButton;
CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_main);
loginButton = (LoginButton) findViewById(R.id.login_button);
loginButton.setReadPermissions("user_friends");
callbackManager = CallbackManager.Factory.create();
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.d("FACEBOOK", "onSuccess");
}
@Override
public void onCancel() {
Log.d("FACEBOOK", "onCancel");
}
@Override
public void onError(FacebookException e) {
Log.d("FACEBOOK", "onError");
}
});
}
}
“登录”按钮的工作方式就像带我进入登录页面并登录一样,它说我的应用程序请求xyz,然后点击“确定”。窗口关闭,但没有其他事情发生。看起来我的回调不起作用,但我不确定为什么。有人看错了什么吗?我看了很多人使用碎片,我不知道为什么......这是问题吗?我已经和android搞乱了大约两天,所以我真的不太了解。
答案 0 :(得分:1)
您需要覆盖活动中的onActivityResult方法并致电callbackManager.onActivityResult
。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
请参阅login guide。