我正在Android上实现一个Facebook登录工具,它似乎可以在模拟器和Google Nexus设备上正常工作。但是,用户似乎在HTC Desire S上取消了授权,因此永远不会调用onComplete()
。我发现的唯一区别是HTC有一个内置的Facebook应用程序。这是我正在使用的代码:
private void Login(){
facebook.authorize(this,new String[] {"email"}, new Facebook.DialogListener() {
@Override
public void onComplete(Bundle values) {
Log.d("Auth","onCompleteCalled");
}
@Override
public void onFacebookError(FacebookError error) {}
@Override
public void onError(DialogError e) {}
@Override
public void onCancel() {
Log.d("Auth","Cancelled");
}
});
错误消息来自Facebook SDK代码的这一部分:
} else if (resultCode == Activity.RESULT_CANCELED) {
// An Android error occured.
if (data != null) {
Log.d("Facebook-authorize",
"Login failed: " + data.getStringExtra("error"));
mAuthDialogListener.onError(
new DialogError(
data.getStringExtra("error"),
data.getIntExtra("error_code", -1),
data.getStringExtra("failing_url")));
// User pressed the 'back' button.
} else {
Log.d("Facebook-authorize", "Login canceled by user."); //This is the error I get
mAuthDialogListener.onCancel();
}
答案 0 :(得分:0)
请更新以下应用程序代码,它将解决您的问题。
public void loginAndPostToWall() {
facebook.authorize(this, PERMISSIONS, Facebook.FORCE_DIALOG_AUTH,
new LoginDialogListener());
}