3
我在Android上实现了Facebook登录功能,似乎在模拟器和Google Nexus设备上工作正常。但是,HTC Desire S上的用户似乎取消了授权,因此从不会调用onComplete()
。我发现唯一的区别是HTC有一个内置的Facebook应用程序。这是我使用的代码:onComplete方法不要求htc欲望
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();
}
什么版本的Facebook应用程序和你有什么Android版本你的愿望?我刚刚用2.2测试了一下。欲望(与Android 1.3.2的Facebook一起来),它适用于我(尽管回落到Web认证)。另外请注意,您可以从市场上更新Facebook应用程序,因此用户有机会获得最新版本而不是inbuild。 – 2011-07-21 11:38:34
Facebook版本1.5.1,Htc Android版本2.3.3。尽管我的应用程序是在2.1版本上创建的。我也有Facebook的HTC Sense版本1,我也不能打破。 – JustCurious
mFacebook.authorize(context, new String [] {“user_photos”,“friends_photos”,“publish_stream”}, -1, (DialogListener)dialogListener); “-1”完成了这项工作,调用传统的对话框而不是新的集成登录对话框。如果任何人有更好的解决方案,我会很高兴听到它。 积分Shane Oliver – JustCurious