gpt4 book ai didi

android - 检查用户是否已经登录到 Facebook

转载 作者:行者123 更新时间:2023-11-29 01:32:13 25 4
gpt4 key购买 nike

如果用户已经使用 Facebook 登录,是否有跳过登录类并直接转到 MainActivity 的方法?我似乎无法在 Facebook SDK 文档中找到任何解决方案。我在下面添加了登录类和 SplashScreen 类。

现在我只能选择注销,然后在再次启动应用程序后在登录类中再次登录。

登录类遵循 Facebook 的指南,我已经删除了我所有的代码,以使其在未来与 StackO 的读者相关。

登录类

public class Login extends Activity {

/**
* Called when the activity is first created.
*/

private CallbackManager callbackManager;
private ProfileTracker profileTracker;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_login);


callbackManager = CallbackManager.Factory.create();
LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
loginButton.setReadPermissions("public_profile", "email", "user_friends");

profileTracker=new ProfileTracker() {
@Override
protected void onCurrentProfileChanged (
Profile oldProfile,
Profile currentProfile){
Log.i("profileTracker", "profileTracker");
}
};
if (profileTracker == null){
Intent i = new Intent(Login.this, MainActivity.class);
startActivity(i);
};


loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {


@Override
public void onSuccess(LoginResult loginResult) {

Intent i = new Intent(Login.this, MainActivity.class);
startActivity(i);
System.out.print("Logged in");

}

@Override
public void onCancel() {
// App code

}

@Override
public void onError(FacebookException exception) {
// App code
Log.i("Error" , "Error");
}


});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}

启动画面类

public class SplashScreen extends Activity {

private static final int SPLASH_TIME_OUT = 2000;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fabric.with(this, new Crashlytics());
setContentView(R.layout.activity_splash_screen);

new Handler().postDelayed(new Runnable() {

@Override
public void run() {
Intent i = new Intent(SplashScreen.this, Login.class);
startActivity(i);

finish();
}
}, SPLASH_TIME_OUT);
}

}

最佳答案

-您好,您可以使用 Profile Tracker 并在您的 Onstart 方法中启动它并检查 Profile 是否存在。

-这是示例CODE:-

-profileTracker = new ProfileTracker() {
@覆盖
protected void onCurrentProfileChanged(
个人资料旧个人资料,
个人资料currentProfile){
Log.i("accesstokensuccess", "gjk");
}
};
配置文件 = Profile.getCurrentProfile();
如果((配置文件!=空))
{ ..你已经登录了..你的主要 Activity 的代码......}

关于android - 检查用户是否已经登录到 Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30550129/

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