在登录了FriendStream应用程序的HTC手机上,由于FriendStream已登录,我的应用程序显然会跳过提供登录Facebook的消息,我认为这是因为似乎两个应用程序都调用Web浏览器进行登录,并且可能是缓存?
如何正确破坏FriendStream连接,以便我可以强制重新登录我的应用程序?或者是否有两种方法可以共存,如果它们都使用浏览器协商连接,则两者都会登录到不同的帐户。
如果有一种方法可以在不使用浏览器的情况下与facebook android sdk / api协商连接,从而绕过这些问题也很有用。谢谢!
为什么这段代码可以在模拟器和其他手机上运行,但在我的手机上使用登录到Facebook的FriendStream App它不起作用?
以下是我们用于登录Facebook的代码:
private void LoginToFacebook(){
facebook = new Facebook(APP_ID);
try {
facebook.logout(this);
}
catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(
KEY, Context.MODE_PRIVATE);
facebook.setAccessToken(sharedPreferences.getString(TOKEN, null));
facebook.setAccessExpires(sharedPreferences.getLong(EXPIRES, 0));
facebook.authorize(this, PERMISSIONS, new LoginDialogListener());
}
//LoginToFacebook
答案 0 :(得分:1)
由于大多数Android设备可能是个人设备而Facebook认为自己是个人服务,因此Facebook的单点登录是一种很好的方式,因此用户无需登录他使用的每个Facebook连接的应用程序(因为通常他无论如何都会使用相同的帐户)
但是,Facebook's API-SDK for Android确实为您提供了一个体面的 logout()方法,如果你真的想强迫它提供你可以使用的 Facebook 类 - 签署用户。由于单点登录,用户应该登录所有他的SSO-Facebook-Applications,包括FriendStream。
恕我直言,可能有点粗鲁,但是:)