![](/img/trans.png)
[英]Facebook SDK 4 for Android - how to log out programmatically
[英]Check if the user when log out from facebook in android facebook sdk 4
我的問題是我擁有一個可以使用facebook sdk new version(4.0)連接到facebook的應用程序,我希望當用戶登錄到facebook時,出現一個textview並顯示其名稱,而單擊退出時textview消失 。
第一部分已經完成,我可以獲得所需的數據:
btnLoginButton.registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
fBLogInClicked = true;
GraphRequest.newMeRequest(loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object,
GraphResponse response) {
try {
String jsonresult = String
.valueOf(object);
String str_firstname = object .getString("first_name");
String str_lastname = object
.getString("last_name");
fullName = str_firstname + " "
+ str_lastname;
} catch (JSONException e) {
e.printStackTrace();
}
if (fullName != null) {
txtFBEmail
.setVisibility(View.VISIBLE);
txtFBEmail.setText(fullName);
}
}
}
}).executeAsync();
}
但是注銷后,我不知道如何了解單擊了注銷,然后無法設置txtFBEmail的可見性。
我在onCreate()上嘗試過此代碼,但是僅當我重新啟動應用程序時才有部分用處,並且在單擊注銷后,我無法下令消失textview。
AccessToken fb_token = AccessToken.getCurrentAccessToken();
if(fb_token == null) {
txtFBEmail.setVisibility(View.GONE);
}
此方法將幫助您完成點擊注銷的確切時間:
accessTokenTracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken,
AccessToken currentAccessToken) {
if (currentAccessToken == null) {
//write your code here what to do when user clicks on facebook logout
checkLoggedInProfile();
}
}
};
將此代碼用於facebook sdk 4。
profile = Profile.getCurrentProfile().getCurrentProfile(); if (profile != null) { // user has logged in txtFBEmail.setVisibility(View.visible); } else { // user has not logged in txtFBEmail.setVisibility(View.GONE); }
有關新的facebook-sdk 4集成的更多信息,您可以在此處查看我的答案。 使用SDK4登錄Facebook
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.