2013-04-14 92 views
0

我有有两个按钮添加publish_action许可,并张贴上墙

  1. 活动是用于登录到Facebook上。登录后,我完成该活动
  2. 其他按钮张贴到墙上

我没有好,不过对于第二部分我下文称Facebook的样本,并试图发帖权限添加到我的公开会议作为第一部分如下

private void performPublish(PendingAction action) { 
    Session session = Session.getActiveSession(); 
    if (session != null) { 
     pendingAction = action; 
     if (hasPublishPermission()) { 
      // We can do the action right away. 
      handlePendingAction(); 
     } else { 
      // We need to get new permissions, then complete the action when we get called back. 
      session.requestNewPublishPermissions(new Session.NewPermissionsRequest(this, PERMISSIONS)); 
     } 
    } 
} 

,但我得到了以下错误

04-14 16:49:18.760: E/AndroidRuntime(2529): FATAL EXCEPTION: main 
    04-14 16:49:18.760: E/AndroidRuntime(2529): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.smartcloud/com.smartcloud.HelloFacebookSampleActivity}: java.lang.UnsupportedOperationException: Session: an attempt was made to request new permissions for a session that has a pending request. 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1751) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1767) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at android.app.ActivityThread.access$1500(ActivityThread.java:122) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1005) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at android.os.Handler.dispatchMessage(Handler.java:99) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at android.os.Looper.loop(Looper.java:132) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at android.app.ActivityThread.main(ActivityThread.java:4028) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at java.lang.reflect.Method.invokeNative(Native Method) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at java.lang.reflect.Method.invoke(Method.java:491) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at dalvik.system.NativeStart.main(Native Method) 
    04-14 16:49:18.760: E/AndroidRuntime(2529): Caused by: java.lang.UnsupportedOperationException: Session: an attempt was made to request new permissions for a session that has a pending request. 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at com.facebook.Session.requestNewPermissions(Session.java:968) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at com.facebook.Session.requestNewPublishPermissions(Session.java:501) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at com.smartcloud.HelloFacebookSampleActivity.performPublish(HelloFacebookSampleActivity.java:194) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at com.smartcloud.HelloFacebookSampleActivity.onClickPostStatusUpdate(HelloFacebookSampleActivity.java:161) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at com.smartcloud.HelloFacebookSampleActivity.onCreate(HelloFacebookSampleActivity.java:89) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1715) 
    04-14 16:49:18.760: E/AndroidRuntime(2529):  ... 11 more 

请帮助我!它对我来说非常重要

回答

0

在请求新权限之前,您需要等待session已打开。您可以使用statusCallback并检查会话何时打开(在call方法中),然后请求新的权限。