检查用户是否已登录Facebook或未登录android
我已经开发了一个具有facebook登录功能的应用程序,用于登录应用程序,因此我在应用程序主页中实现了两个按钮,因此当单击facebook登录时,其打开的facebook登录页面将打开,因此我的问题是,当用户已经使用fb登录时,登录按钮应不可见,因此我检查 facebook.isSessionValid()为真或假,但每次都变假 我的代码检查用户是否已登录Facebook或未登录android,android,facebook,facebook-graph-api,Android,Facebook,Facebook Graph Api,我已经开发了一个具有facebook登录功能的应用程序,用于登录应用程序,因此我在应用程序主页中实现了两个按钮,因此当单击facebook登录时,其打开的facebook登录页面将打开,因此我的问题是,当用户已经使用fb登录时,登录按钮应不可见,因此我检查 facebook.isSessionValid()为真或假,但每次都变假 我的代码 String APP_ID = "**************"; fb = new Facebook(APP_ID); lo
String APP_ID = "**************";
fb = new Facebook(APP_ID);
login = (Button) findViewById(R.id.btnFbLogin);
if(fb.isSessionValid())
{
login.setVisibility(View.GONE);
}
Toast.makeText(this, "" + fb.isSessionValid(), Toast.LENGTH_LONG).show();
withoutLogin = (Button) findViewById(R.id.btnWithoutLogin);
login.setOnClickListener(this);
withoutLogin.setOnClickListener(this);
}
@Override
public void onClick(View click) {
if (click == login) {
loginTofacebook();
} else {
Intent intent = new Intent(this, MockTest.class);
startActivity(intent);
Toast.makeText(this, withoutLogin.getText().toString(), Toast.LENGTH_SHORT).show();
}
}
public void loginTofacebook() {
mPrefs = getPreferences(MODE_PRIVATE);
String access_token = mPrefs.getString("access_token", null);
long expires = mPrefs.getLong("access_expires", 0);
if (access_token != null) {
fb.setAccessToken(access_token);
Log.d("FB Sessions", "" + fb.isSessionValid());
}
if (expires != 0) {
fb.setAccessExpires(expires);
}
{
fb.authorize(this, new String[]{"email", "user_address ", "user_mobile_phone", "publish_stream", "manage_friendlists", "user_checkins", "friends_checkins", "read_friendlists", "manage_friendlists", "friends_birthday"}, new Facebook.DialogListener() {
@Override
public void onFacebookError(FacebookError e) {
Toast.makeText(MainActivity.this, "fbError", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(DialogError e) {
Toast.makeText(MainActivity.this, "onError", Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete(Bundle values) {
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token", fb.getAccessToken());
editor.putLong("access_expires", fb.getAccessExpires());
editor.commit();
Intent intent = new Intent(MainActivity.this, Preparation.class);
startActivity(intent);
}
@Override
public void onCancel() {
Toast.makeText(MainActivity.this, "onCancel", Toast.LENGTH_SHORT).show();
}
});
}
}
}
希望这会有所帮助
Session session = Session.getActiveSession();
if (session == null) {
// try to restore from cache
session = Session.openActiveSessionFromCache(this);
// Toast.makeText(this, "logout", Toast.LENGTH_LONG).show();
}
session.isOpenSession(); // return true if login