gpt4 book ai didi

android - 如何检查用户已经登录 android (Facebook SDK 4.0)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:56 24 4
gpt4 key购买 nike

这是我的代码:

public class LocationDetailActivity extends ActionBarActivity {

private CallbackManager mCallBackManager;
private FacebookCallback<LoginResult> mCallBack;
private ImageView mBtnBack;
AccessToken token;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.location_detail_layout);
FacebookSdk.sdkInitialize(getApplicationContext());
share = (ImageButton) findViewById(R.id.imageShare);
token = AccessToken.getCurrentAccessToken();

share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(token == null) {
final Dialog dialog = new Dialog(LocationDetailActivity.this);
dialog.setContentView(R.layout.share_custom_dialog);
dialog.setTitle("Login as:");
dialog.show();
mCallBackManager = CallbackManager.Factory.create();
mCallBack = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {

Profile profile = Profile.getCurrentProfile();
if(profile!=null){
dialog.cancel();
ShareDialog shareDialog = new ShareDialog(LocationDetailActivity.this);
if(shareDialog.canShow(ShareLinkContent.class)){
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse("https://developers.facebook.com"))
.build();
shareDialog.show(content);
}
}
}

@Override
public void onCancel() {

}

@Override
public void onError(FacebookException e) {

}
};
LoginButton loginButton = (LoginButton)dialog.findViewById(R.id.login_button);
loginButton.setReadPermissions("user_friends");
loginButton.registerCallback(mCallBackManager, mCallBack);
}
else if(token != null){
ShareDialog shareDialog = new ShareDialog(LocationDetailActivity.this);
if(shareDialog.canShow(ShareLinkContent.class)){
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse("https://developers.facebook.com"))
.build();
shareDialog.show(content);
}
}
}
});

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mCallBackManager.onActivityResult(requestCode, resultCode, data);
}
}

我想检查用户是否已经从 Facebook 的应用程序登录。如果他们不这样做,我的应用程序将显示带有登录按钮的自定义对话框。否则,我的应用程序将显示共享对话框,但当我点击我的按钮时,即使我登录了 Facebook,也会始终显示自定义对话框

更多信息: AccessToken token = AccessToken.getCurrentAccessToken();

最佳答案

检查登录状态

boolean isLoggedIn = accessToken != null && !accessToken.isExpired();

然后您可以稍后执行实际登录,例如在自定义按钮的 OnClickListener 中:

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile"));

关于android - 如何检查用户已经登录 android (Facebook SDK 4.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30046939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com