Android Facebook上的好友墙链接有问题

Android Facebook上的好友墙链接有问题,android,facebook-android-sdk,android-facebook,Android,Facebook Android Sdk,Android Facebook,我正试图使用下面的代码在朋友的墙上发帖,这些代码是我从他们的教程中获取的。我已经实现了所有的生命周期方法,但不清楚发生了什么 情景: 我有一个活动和一个片段绑定到facebook登录-->我在此设置中请求读取权限,并使用从facebook获得的相关信息填充数据库 现在我有了一个选项卡设置,它有一个不同的MainActivity和子片段,其中两个子元素包含ListView,该列表的每一行都与不同的Facebook好友ID关联。在该列表中facebook_post按钮的clikc上,我使用以下功能在

我正试图使用下面的代码在朋友的墙上发帖,这些代码是我从他们的教程中获取的。我已经实现了所有的生命周期方法,但不清楚发生了什么

情景:

我有一个活动和一个片段绑定到facebook登录-->我在此设置中请求读取权限,并使用从facebook获得的相关信息填充数据库

现在我有了一个选项卡设置,它有一个不同的MainActivity和子片段,其中两个子元素包含ListView,该列表的每一行都与不同的Facebook好友ID关联。在该列表中facebook_post按钮的clikc上,我使用以下功能在facebook好友墙上发布:

if (isNetworkConnected()) {
    Session session = Session.getActiveSession();
    if (session != null) {
        if(isLoggedIn()){
            Toast.makeText(getActivity(),"Session not null and logged in", Toast.LENGTH_LONG).show();
            if (hasPublishPermission()) {
                System.out.println("Has publish");
                Toast.makeText(getActivity(),"Session not null and logged in and publish too", Toast.LENGTH_LONG).show();
                Bundle params = new Bundle();
                params.putString("name", "Digital");
                params.putString("link", "http://www.digitals.com/");
                params.putString("picture","http://www.exar.com/images/frontend/logo.png");
                params.putString("to", FACEBOOK_ID);
                params.putString("caption", "Congrulations!");
                params.putString("description", textGreeting);
                params.putString("message", "message");


                WebDialog feedDialog = (new WebDialog.FeedDialogBuilder(
                        getActivity(), Session.openActiveSessionFromCache(getActivity()),
                        params)).setOnCompleteListener(
                                new OnCompleteListener() {

                                    @Override
                                    public void onComplete(Bundle values,
                                            FacebookException error) {
                                        // frag3.setFbId(null);
                                        // ---------------------------- got to put
                                        // check here
                                        //  onBackPressed();

                                    }
                                }).build();
                feedDialog.show();
            } else if (session.isOpened()) {
                // We need to get new permissions, then complete the action
                if (!hasPublishPermission())
                    session.requestNewPublishPermissions(new Session.NewPermissionsRequest(getActivity(), PERMISSION));
                Bundle params = new Bundle();
                params.putString("name", "Digital");
                params.putString("link", "http://www.digitals.com/");
                params.putString("picture","http://www.exareceipts.com/images/frontend/logo.png");
                params.putString("to", FACEBOOK_ID);
                params.putString("caption", "Congrulations!");
                params.putString("description", textGreeting);
                params.putString("message", "message");

                WebDialog feedDialog = (new WebDialog.FeedDialogBuilder(
                        getActivity(), Session.getActiveSession(),
                        params)).setOnCompleteListener(
                                new OnCompleteListener() {

                                    @Override
                                    public void onComplete(Bundle values,FacebookException error) {
                                        // frag3.setFbId(null);
                                        // ---------------------------- got to put
                                        // check here
                                        //onBackPressed();

                                    }
                                }).build();
                feedDialog.show();
            }
        }else{
            Toast.makeText(getActivity(),"Please check if you are logged in", Toast.LENGTH_LONG).show();

            mainFrag.setParam(1); 

            Intent mainIntent;
            mainIntent = new Intent(getActivity(),FacebookMain.class); 
            getActivity().startActivity(mainIntent);
        }
    }
} else {
    Toast.makeText(getActivity(),"Please check your internet connection", Toast.LENGTH_LONG).show();
}

}catch (Exception e){
    System.out.println("Exception post fb: " +e);
    Toast.makeText(getActivity(), "first construct"+e, Toast.LENGTH_SHORT).show();
}
这是我的isLoggedIn函数:

public boolean isLoggedIn() {
        Session session = Session.getActiveSession();
        if (session != null && session.isOpened()) {
            return true;
        } else {
            return false;
        }
    }
以下是我的生命周期方法(在当前片段中):

在onCreate中:

uiHelper = new UiLifecycleHelper(getActivity(), callback);
    uiHelper.onCreate(savedInstanceState);


//===============================================

Session.openActiveSessionFromCache(getActivity());

//================================================
然而,我得到了一个例外:

java.lang.UnsupportedOperationException: Session: an attempt was made to request new permissions for a session that has a pending request

当我从手机上卸载FB应用程序以检查web对话框是否正常工作时,通常会发生上述情况。有什么想法吗

该错误通常意味着您正在进行权限请求,而另一个权限请求正在进行。如果看不到代码的完整流程,就不可能知道它发生在哪里


好消息是,因为您只使用提要对话框,所以不需要发布权限。

您看到了吗?是的,我检查了,但是我遵循UiLifeCycleHelper模式,但对我来说还不够清楚!我想要一个活动的骨架,可以用来张贴在朋友的墙上。你好,李明,你能给我一个简单活动的例子,比如说一个我可以参考的骨架,或者一个链接吗?李明,你救了我的命!
java.lang.UnsupportedOperationException: Session: an attempt was made to request new permissions for a session that has a pending request