LinkedIn身份验证无法在Android中使用Fragment

时间:2017-09-05 18:27:53

标签: java android authentication linkedin

我正在创建一个拥有LinkedIn登录信息的应用。我正在关注this文档。但是当我点击登录按钮时,应用程序会重定向到LinkedIn应用程序并要求登录。成功登录后,它会重定向到我的应用程序。但没有任何反应。 onActivityResult上也没有任何事情发生。 以下是我的代码。在片段上实现登录

 LISessionManager.getInstance(getActivity()).init(getActivity(), buildScope(), new AuthListener() {
            @Override
            public void onAuthSuccess() {
                getLinkedInProfile();
                Toast.makeText(getApplicationContext(), "success" , Toast.LENGTH_LONG).show();
            }
            @Override
            public void onAuthError(LIAuthError error) {
                Toast.makeText(getApplicationContext(), "failed " + error.toString(), Toast.LENGTH_LONG).show();
            }
        }, true);

//

private static Scope buildScope() {
    return Scope.build(Scope.R_BASICPROFILE, Scope.R_EMAILADDRESS);
}

和onActivityResult如下:

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

已在LinkedIn开发者控制台上添加了哈希和包名称。我错过了什么吗?请帮忙

2 个答案:

答案 0 :(得分:5)

发现LinkedIn sdk的onActivityResult触发父活动而不是片段onActivityResult。因此,您必须将以下代码写入您的父活动onActivityResult以触发片段onActivityResult

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

答案 1 :(得分:1)

尝试登录以确保是否调用函数。