gpt4 book ai didi

java - Facebook 身份验证不适用于 Android 手机

转载 作者:行者123 更新时间:2023-11-29 05:49:15 24 4
gpt4 key购买 nike

我制作了一个 android 应用程序,我需要在其中使用 Facebook 登录,一旦身份验证成功,我就需要转到另一个 Intent 。所以我从 here 下载了 Facebook Android SDK .

下载并导入到 Eclipse 后,我从该 SDK 扩展了 SessionLoginExample。在我的模拟器中,它对我来说工作正常,我可以使用它登录 Facebook 应用程序,而且一旦我登录,它也会转到另一个 Intent。

问题陈述:-

但是当我在真机上安装应用后,问题就出现了。在 Android 手机上安装它后,一旦它打开 Facebook 登录页面,将我的用户名和密码输入其中后,它就不会执行另一个 Intent ,一段时间后我的控制台也会出现异常。之后每次我收到一条消息 Facebook has stopped working 然后我收到消息我的 Application has forced closed

我注意到的另一件事是——只要我在 Android Phone 中打开我的应用程序,我总是在我的控制台中收到消息说 Login Failed 甚至我都没有输入我的用户名和密码到 Facebook 页面。

下面是我从SessionLoginExample-

使用的代码
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, container, false);

buttonLoginLogout = (Button) view.findViewById(R.id.buttonLoginLogout);
textInstructionsOrLink = (TextView) view.findViewById(R.id.instructionsOrLink);

Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);

Session session = Session.getActiveSession();
if (session == null) {
if (savedInstanceState != null) {
session = Session.restoreSession(getActivity(), null, statusCallback,
savedInstanceState);
}
if (session == null) {
session = new Session(getActivity());
}
Session.setActiveSession(session);
if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
}
}

updateView();

return view;
}

@Override
public void onStart() {
super.onStart();
Session.getActiveSession().addCallback(statusCallback);
}

@Override
public void onStop() {
super.onStop();
Session.getActiveSession().removeCallback(statusCallback);
}

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

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Session session = Session.getActiveSession();
Session.saveSession(session, outState);
}

private void updateView() {
Session session = Session.getActiveSession();
if (session.isOpened()) {

// After login is successful, I am going to another Intent
Intent thesisProject = new Intent(getActivity(), ThesisProjectAndroid.class);
startActivity(thesisProject);

} else {
Log.d(TAG_LOGIN_FAILED,
"There is something wrong with your Facebook account. Please try again.");

textInstructionsOrLink.setText(R.string.instructions);
buttonLoginLogout.setText(R.string.login);
buttonLoginLogout.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
onClickLogin();
}
});
}
}



private void onClickLogin() {
Session session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()) {
session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
} else {
Session.openActiveSession(getActivity(), this, true, statusCallback);
}
}

private void onClickLogout() {
Session session = Session.getActiveSession();
if (!session.isClosed()) {
session.closeAndClearTokenInformation();
}
}

private class SessionStatusCallback implements Session.StatusCallback {
@Override
public void call(Session session, SessionState state, Exception exception) {
updateView();
}
}
}

我也低于异常-

01-30 11:06:08.400: E/AndroidRuntime(7463): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=64206, result=0, data=null} to activity {com.facebook.samples.sessionlogin/com.facebook.LoginActivity}: java.lang.NullPointerException

谁能帮我解决为什么我的手机会出现这种情况?

最佳答案

根据我的经验,在将异常传递给 session 之前,您可以通过检查 onActivityResult 中的 resultCode 来解决您显示的异常,例如:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (Session.getActiveSession() != null && resultCode == RESULT_OK) {
Session.getActiveSession().onActivityResult(getActivity(), requestCode, resultCode, data);
}
}

虽然无法帮助您解决最初的问题,但您的 Facebook 登录无法正常工作,抱歉。

关于java - Facebook 身份验证不适用于 Android 手机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14617749/

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