LinkedIn 身份验证不适用于 android 中的 Fragment
LinkedIn Authentication not working on Fragment in android
我正在创建一个具有 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 开发人员控制台上添加哈希和包名称。我错过了什么吗?请帮助
尝试Log确认函数是否被调用
发现 onActivityResult
for LinkedIn sdk 在父 activity 而不是片段 onActivityResult
上触发。因此,您必须将以下代码写入您的父 Activity 的 onActivityResult
以触发片段的 onActivityResult
.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
yourFragment.onActivityResult(requestCode, resultCode, data);
}
我正在创建一个具有 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 开发人员控制台上添加哈希和包名称。我错过了什么吗?请帮助
尝试Log确认函数是否被调用
发现 onActivityResult
for LinkedIn sdk 在父 activity 而不是片段 onActivityResult
上触发。因此,您必须将以下代码写入您的父 Activity 的 onActivityResult
以触发片段的 onActivityResult
.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
yourFragment.onActivityResult(requestCode, resultCode, data);
}