在 Android App 中成功登录 Facebook 后切换到另一个活动
Posted
技术标签:
【中文标题】在 Android App 中成功登录 Facebook 后切换到另一个活动【英文标题】:Switch to another activity after successful Facebook login in Android App 【发布时间】:2015-09-26 07:48:40 【问题描述】:我是 Adroid 应用开发的新手,开始学习大约一周。 但是自从 3 天以来,我在成功登录 Facebook 后一直在努力切换活动。
我的问题:
1) 用户登录后,我需要重定向到我的另一个活动。 2) 我需要在下一个活动框架上显示他们的个人资料详细信息,例如个人资料图片、电子邮件和姓名等(登录后会出现)。
当前状态:登录后,片段保持原样并显示注销按钮。
我的片段代码在这里:
public class LoginFragment extends Fragment
private CallbackManager mCallbackManager;
public AccessTokenTracker mAccessTokenTracker;
public ProfileTracker mProfileTracker;
private FacebookCallback<LoginResult> mCallback = new FacebookCallback<LoginResult>()
@Override
public void onSuccess(LoginResult loginResult)
AccessToken accesstoken = loginResult.getAccessToken();
Profile profile = Profile.getCurrentProfile();
Log.d("get me profile", "Name");
//Log.d("Welcome :", profile.getName());
@Override
public void onCancel()
@Override
public void onError(FacebookException e)
;
public LoginFragment()
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getActivity().getApplicationContext());
mCallbackManager = CallbackManager.Factory.create();
AccessTokenTracker mAccessTokenTracker = new AccessTokenTracker()
@Override
protected void onCurrentAccessTokenChanged(AccessToken oldtracker, AccessToken newtracker)
;
mAccessTokenTracker.startTracking();
ProfileTracker mProfileTracker = new ProfileTracker()
@Override
protected void onCurrentProfileChanged(Profile oldprofile, Profile newprofile)
//Log.d("New Name", "data");
;
mProfileTracker.startTracking();
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
return inflater.inflate(R.layout.login_main, container, false);
@Override
public void onViewCreated(View view, Bundle savedInstanceState)
super.onViewCreated(view, savedInstanceState);
LoginButton loginButton = (LoginButton) view.findViewById(R.id.login_button);
loginButton.setReadPermissions("public_profile");
loginButton.setFragment(this);
loginButton.registerCallback(mCallbackManager, mCallback);
@Override
public void onResume()
super.onResume();
Profile profile = Profile.getCurrentProfile();
@Override
public void onDestroy()
super.onDestroy();
mAccessTokenTracker.stopTracking();
mProfileTracker.stopTracking();
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
super.onActivityResult(requestCode, resultCode, data);
mCallbackManager.onActivityResult(requestCode, resultCode, data);
请求您的好话,伙计们完成这项工作。
【问题讨论】:
【参考方案1】:回答你的第一个问题
1) 在FacebookCallback:onSuccess
方法中,您可以使用打开下一个Activity 所需的方法,在Fragment 的onCreate
中,您将检查是否AccessToken 为 Null,如果为 Null 则不执行任何操作等待用户按登录,如果不是 Null,则调用相同的方法打开所需的 Activity用户已经登录
2)您已经检查了文档和权限以获取当前登录用户的头像和姓名,如果您有疑问,请编写您首先使用的代码来获取用户数据
【讨论】:
以上是关于在 Android App 中成功登录 Facebook 后切换到另一个活动的主要内容,如果未能解决你的问题,请参考以下文章