下面的文档显示我们需要使用GetDetailsHandler来检索android的用户属性。
我已尝试过,在onSuccess()中,我做了
GetDetailsHandler getDetailsHandler = new GetDetailsHandler() {
@Override
public void onSuccess(CognitoUserDetails cognitoUserDetails) {
Map userAtts = cognitoUserDetails.getAttributes().getAttributes();
String userName = userAtts.get("alias:preferred_username").toString();
}
@Override
public void onFailure(Exception exception) {
}
};
用户名仍然返回null。我在onCreate()中实现了它。我做错了吗?任何帮助表示赞赏。
答案 0 :(得分:1)
如果您尝试访问标准用户属性" preferred_username"中的值,则该键只是" preferred_username"。
要访问首选用户名,请尝试:
Map userAtts = cognitoUserDetails.getAttributes().getAttributes();
String userName = userAtts.get("preferred_username").toString();
答案 1 :(得分:0)
您必须先使用
初始化地图Map userAtts=new HashMap();
userAtts =cognitoUserDetails.getAttributes().getAttributes();
String userName = userAtts.get("alias:preferred_username").toString();
它有效