在amazon cognito userpool for android

时间:2017-01-04 20:28:13

标签: android amazon-web-services amazon-cognito

下面的文档显示我们需要使用GetDetailsHandler来检索android的用户属性。

http://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-integrating-user-pools-android.html#tutorial-integrating-user-pools-user-details-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()中实现了它。我做错了吗?任何帮助表示赞赏。

2 个答案:

答案 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();

它有效