Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 某些设备上的Facebook登录失败大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经实施了Facebook登录,它在一些设备/ AVDs上正常工作.我的开发设备是Gingerbread手机,但是使用4.1.1设备进行测试,它根本不会登录.按下Facebook按钮后,显示一个空白屏幕(尝试连接Facebook),1-2秒后回到主屏幕.此外,Logcat中没有任何错误被烘烤或显示.哦,和Facebook应用程序安装在设备…任何想法?

更新:

我按照Mark Venzke的建议启用了日志记录,并使用了this程序,每次登录尝试时都会收到两次警告(注意:使用HTC One S手机进行测试):

07-05 20:14:50.582: W/PackageManager(605): Unable to load service info ResolveInfo{4171dbf0 com.htc.socialnetwork.facebook.remote.FacebookSyncservice p=0 o=0 m=0x108000}

请注意com.htc.socialnetwork.facebook.remote.FacebookSyncservice行,HTC设备还需要额外的步骤吗?

另外,我附加执行登录代码

private void onSessionStateChange(Session session,SessionState state,Exception exception) {
    if (isResumed) {
        FragmentManager manager = getSupportFragmentManager();
        int BACkStackSize = manager.getBACkStackEntryCount();
        for (int i = 0; i < BACkStackSize; i++) {
            manager.popBACkStack();
        }
        com.facebook.SetTings.addLoggingBehavior(LoggingBehavior.requESTS);
        if (state.isOpened()) {

            Bundle params = new Bundle();
            params.putString("fields","id");
            params.putString("limit","1");             
            request request = new request(Session.getActiveSession(),"me",params,httpR_459_11845@ethod.GET,new CallBACk()
            {

                @Override
                public void onCompleted(Response responsE)
                {
                    if (response != null)
                    {
                        Log.d("AuthGraphResponse",response.toString());
                        long id;
                        try {
                            id = response.getGraphObject().geTinnerJSONObject().getLong("id");
                            app.setFacebookId(id);
                            Log.d("UserID",Long.valueOf(id).toString());
                        } catch (JSONException E) {
                            e.printStackTrace();
                        }
                    }
                }
            });

            requestAsyncTask task = new requestAsyncTask(request);
            task.execute();

            showFragment(AUTH,falsE);
        } else if (state.isClosed()) {
            showFragment(UNAUTH,falsE);
        }
    }
}

更新2:

HTC是否有可能在com.htc.socialnetwork.facebook(而不是com.facebook.katana)的所有设备(或其中一些,无论如何)重命名认Facebook应用程序的包名称,并导致此冲突?我不认为卸载认应用程序并从Google Play安装Facebook是一个可以接受的解决方案(我也认为认的应用程序无法卸载).

更新3:

还没解决19小时授予100声誉赏金!

更新4:

LogCat的另一个有趣的一行:

07-15 10:55:51.718: E/chromium(30475): external/chromium/net/disk_cache/stat_hub.cc:216: [0715/105551:ERROR:stat_hub.cc(216)] StatHub::Init - App com.facebook.katana isn't supported.

解决方法

您的股票应用程序和SDK之间确实存在冲突.所以,如果你不想uninsstall股票HTC应用程序,仍然使用SDK 3.0我认为你最好的打赌而不修改sdk的源代码将是禁用SSO和只通过webview登录.

每次尝试打开新会话时,可以通过添加SessionLoginBehavior.SUPRESS_SSO轻松完成此操作.以下是从SDK SDK中的SessionLoginSample(LoginUsingActivityActivity)中更改的示例,以显示如何处理:

@Override
public void onCreate(Bundle savedInstanceStatE) {
    ...
    Session session = Session.getActiveSession();
    if (session == null) {
        if (savedInstanceState != null) {
            session = Session.restoreSession(this,null,statusCallBACk,savedInstanceStatE);
        }
        if (session == null) {
            session = new Session(this);
        }
        Session.setActiveSession(session);

        //add the check,for if session is opened
        if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED) || !session.getState().isOpened()) {
            //Add the suppress SSO behavior to force webview auth dialog to popup
            session.openForRead(new Session.openrequest(this).setCallBACk(statusCallBACk).setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO));
        }
    }
  ...
}
//then put your code in the statusCallBACk method or keep it in the session state change listener

否则,如果你不介意更改Facebook sdk代码,你应该检查this

大佬总结

以上是大佬教程为你收集整理的android – 某些设备上的Facebook登录失败全部内容,希望文章能够帮你解决android – 某些设备上的Facebook登录失败所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。