重新启动android应用程序后如何保持fb sdk登录
我正在安卓系统中创建facebook登录页面,登录时我获取用户详细信息,但当我关闭应用程序并重新启动时,我的所有用户详细信息都消失了,再次启动登录活动,但fb要求注销。我的问题是我想保持未登录状态,然后注销。我的代码是重新启动android应用程序后如何保持fb sdk登录,android,facebook,facebook-graph-api,Android,Facebook,Facebook Graph Api,我正在安卓系统中创建facebook登录页面,登录时我获取用户详细信息,但当我关闭应用程序并重新启动时,我的所有用户详细信息都消失了,再次启动登录活动,但fb要求注销。我的问题是我想保持未登录状态,然后注销。我的代码是 FacebookCallback<LoginResult> mCallBack=new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult
FacebookCallback<LoginResult> mCallBack=new
FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// Facebook Email address
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
public void onCompleted(
JSONObject object,
GraphResponse response) {
Log.v("LoginActivity Response ", response.toString());
try {
Name = object.getString("name");
Email = object.getString("email");
// Gender=object.getString("gender");
BD=object.getString("link");
profilePicUrl =
object.getJSONObject("picture").getJSONObject("data").getString("url");
// tv1.setText(profilePicUrl);
shared prefernce
SharedPreferences sharedPref =
PreferenceManager.getDefaultSharedPreferences(userLogin.this);
//now get Editor
SharedPreferences.Editor editor = sharedPref.edit();
//put your value
editor.putString("name1",Name);
editor.putString("mail2", Email);
editor.putString("picture", profilePicUrl);
//commits your edits
editor.commit();
Intent returnIntent = new
Intent(userLogin.this,tabLayout.class);
returnIntent.putExtra("name1",Name);
returnIntent.putExtra("mail2", Email);
returnIntent.putExtra("picture", profilePicUrl);
startActivity(returnIntent);
// finish();
}
catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields",
"id,name,link,email,picture.type(large)");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
};
loginButton.registerCallback(callbackManager,mCallBack);
}
facebook回调mCallBack=new
FacebookCallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//Facebook电子邮件地址
GraphRequest请求=GraphRequest.newmereRequest(
loginResult.getAccessToken(),
新建GraphRequest.GraphJSONObjectCallback(){
公共空间未完成(
JSONObject对象,
GraphResponse(反应){
Log.v(“LoginActivity响应”,Response.toString());
试一试{
Name=object.getString(“Name”);
Email=object.getString(“Email”);
//性别=object.getString(“性别”);
BD=object.getString(“链接”);
profilePicUrl=
object.getJSONObject(“图片”).getJSONObject(“数据”).getString(“url”);
//tv1.setText(profilePicUrl);
共享优先权
SharedPreferences sharedPref=
PreferenceManager.getDefaultSharedReferences(userLogin.this);
//现在去找编辑
SharedPreferences.Editor=sharedPref.edit();
//把你的价值
编辑器.putString(“name1”,Name);
editor.putString(“mail2”,Email);
编辑器.putString(“图片”,profilePicUrl);
//提交您的编辑
commit();
Intent returnIntent=new
意图(userLogin.this、tabLayout.class);
returnIntent.putExtra(“名称1”,名称);
returnIntent.putExtra(“mail2”,电子邮件);
returnIntent.putExtra(“图片”,profilePicUrl);
星触觉(返回意图);
//完成();
}
捕获(JSONException e){
e、 printStackTrace();
}
}
});
Bundle参数=新Bundle();
parameters.putString(“字段”,
“id、姓名、链接、电子邮件、图片。键入(大)”;
请求。设置参数(参数);
request.executeAsync();
}
@凌驾
公开作废{
}
@凌驾
public void onError(facebook异常错误){
}
};
registerCallback(callbackManager,mCallBack);
}
////检查是否
if(AccessToken.getCurrentAccessToken() == null){// AccessToken is a class of fb sdk
// try to login with facebook
//show facebook login
}else{
// get your data from Shared preferences
// move to next activity
}
或
检查是否
if(AccessToken.getCurrentAccessToken() == null){// AccessToken is a class of fb sdk
// try to login with facebook
//show facebook login
}else{
// get your data from Shared preferences
// move to next activity
}
或
LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback()){
@凌驾
成功时公共无效(LoginResult LoginResult){
//按此方式编写代码,然后就可以工作了。实际上,Facebook SDK会在您登录后将您的会话保存在内存中,因此在您卸载或从帐户中删除您的应用程序之前,它不会注销。希望有帮助。LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback()){
@凌驾
成功时公共无效(LoginResult LoginResult){
//按此方式编写代码,然后它就会工作。实际上,Facebook SDK会在您登录后将您的会话保存在内存中,因此在您卸载或从您的帐户中删除应用程序之前,它不会注销。希望能有所帮助。谢谢,伙计……它工作得很好……您节省了我的时间:)谢谢,伙计……它工作得很好……您节省了我的时间:)
if (AccessToken.getCurrentAccessToken() != null) {
GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(final JSONObject object, GraphResponse response) {
try {
//add your name/email/profile picture url parsing and sharedPreference code here
} catch (JSONException e) {
Toast.makeText(context, "" + "Unable to log In", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link,email,picture.type(large)");
request.setParameters(parameters);
request.executeAsync();
} else {
}
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
}
);