Android Facebook SDK 3.0会话状态“;开场白;
我正在使用他们的文档集成Facebook的登录。我遇到了一个问题,当我点击Facebook登录小部件时,会话变为“打开”,应用程序崩溃 我的Facebook按钮布局Android Facebook SDK 3.0会话状态“;开场白;,android,facebook,facebook-android-sdk,Android,Facebook,Facebook Android Sdk,我正在使用他们的文档集成Facebook的登录。我遇到了一个问题,当我点击Facebook登录小部件时,会话变为“打开”,应用程序崩溃 我的Facebook按钮布局 <com.facebook.widget.LoginButton android:id="@+id/authButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layo
<com.facebook.widget.LoginButton
android:id="@+id/authButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
/>
}
在活动中,我实现了必需的onActivityResult并检索片段
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState == null) {
// Add the fragment on initial activity setup
mainFragment = new FacebookFragment();
getSupportFragmentManager()
.beginTransaction()
.add(android.R.id.content, mainFragment)
.commit();
} else {
// Or set the fragment from restored state info
mainFragment = (FacebookFragment) getSupportFragmentManager()
.findFragmentById(android.R.id.content);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
我想问题可能在于密钥散列,但我完全按照这个问题上的答案来做
非常感谢您在您的
onResume()中提供有关如何将状态设置为“Opened”的任何线索Addsession.addCallback(callback)
:
问题在于让android:clearTaskOnLaunch=“true”登录facebook的活动。无法调用OnActivityResult。当我在调试模式下运行应用程序时,我遇到了一个异常。谢谢,当我进入我的计算机时,我会尝试一下。我还没有尝试过,但回调的目的是什么?回调是一个带有一个抽象方法(调用)的接口,每次会话状态改变(打开、关闭、打开等)时都会调用该方法。您已经在代码中实现了Session.Callback(回调)。您需要它来检查会话何时最终更改为Openi状态。我添加了回调,但应用程序仍然关闭。确保在会话打开之前,您不会对会话执行任何操作(查询帖子、评论、共享等),并且您拥有正确的权限+1android:noHistory=“true”AndroidManifest
中的是我的原因。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState == null) {
// Add the fragment on initial activity setup
mainFragment = new FacebookFragment();
getSupportFragmentManager()
.beginTransaction()
.add(android.R.id.content, mainFragment)
.commit();
} else {
// Or set the fragment from restored state info
mainFragment = (FacebookFragment) getSupportFragmentManager()
.findFragmentById(android.R.id.content);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
super.onResume();
Session session = Session.getActiveSession();
session.addCallback(callback);