gpt4 book ai didi

android facebook 授权 : onActivityResult not called

转载 作者:行者123 更新时间:2023-11-29 02:04:23 25 4
gpt4 key购买 nike

我构建了一个连接 facebook 的 android 应用程序,它有一个按钮。当我点击按钮时,应用程序将调用 facebook.authorize 请求许可。从询问权限屏幕返回后,它应该调用 onActivityResult 方法。但就我而言,它从不调用此方法。我发现了一些类似的问题,但所有解决方案都不能解决我的问题。这是用户单击按钮时的代码:

facebook.authorize(this, new String[] { "read_friendlists" }, 
new DialogListener() {
public void onComplete(Bundle values) {
Log.v("complete", "complete");
hideNeedLoginView();
}

public void onCancel() {
Log.v("cancel", "cancel");
hideNeedLoginView();
}

public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
Log.v("error", "error");
}

public void onError(DialogError e) {
// TODO Auto-generated method stub
Log.v("error", "error");
}
});

和 onActivityResult 方法:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
facebook.authorizeCallback(requestCode, resultCode, data);
}

由于没有调用 onActivityResult,因此也没有调用所有的 onComplete 或 onCancel 方法。 Intent.FLAG_ACTIVITY_NO_HISTORY 未定义,所以这不是问题(这在 facebook 页面上提到)。如果我将 activityCode 设置为 Facebook.FORCE_DIALOG_AUTH 那么当我点击按钮时,应用程序没有响应。我在设备上安装了 facebook 应用程序。授权后如何调用onActivityResult方法?请有人帮我解决这个问题,因为我在任何地方都找不到任何解决方案。

最佳答案

希望以下代码对您有所帮助。

private static final String[] PERMISSIONS = new String[]
{ "publish_stream", "read_stream", "offline_access" };

mFacebook = new Facebook(APP_ID);
mFacebook.authorize(this, PERMISSIONS,new LoginDialogListener());


private final class LoginDialogListener implements
com.facebook.android.Facebook.DialogListener
{

/**
* Called when the dialog has completed successfully
*/
public void onComplete(Bundle values)
{
// Process onComplete
Log.d("FB Sample App", "LoginDialogListener.onComplete()");
// Dispatch on its own thread
mHandler.post(new Runnable()
{
public void run()
{
mText.setText("Facebook login successful. Press Menu...");
}
});
}

public void onFacebookError(FacebookError error)
{
// Process error
Log.d("FB Sample App", "LoginDialogListener.onFacebookError()");
}

public void onError(DialogError error)
{
// Process error message
Log.d("FB Sample App", "LoginDialogListener.onError()");
}

public void onCancel()
{
// Process cancel message
Log.d("FB Sample App", "LoginDialogListener.onCancel()");
}
}

关于android facebook 授权 : onActivityResult not called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com