android 集成IM聊天sdk,用户离奇离线,JMessageClient.getMyInfo()获取到对象为null

Crazy2008
2019-11-30 06:28 186 0
//TODO 这里暂时写死了极光的登陆
        String userId="186****5623";
        String password="111111";
        JMessageClient.login(userId, password, new BasicCallback() {
            @Override
            public void gotResult(int responseCode, String responseMessage) {
                if (responseCode == 0) {
                    EACionApplication.registerOrLogin = 1;
                    SharePreferenceManager.setCachedPsw(password);
                    UserInfo myInfo = JMessageClient.getMyInfo();
                    File avatarFile = myInfo.getAvatarFile();
                    //登陆成功,如果用户有头像就把头像存起来,没有就设置null
                    if (avatarFile != null) {
                        SharePreferenceManager.setCachedAvatarPath(avatarFile.getAbsolutePath());
                    } else {
                        SharePreferenceManager.setCachedAvatarPath(null);
                    }
                    String username = myInfo.getUserName();
                    String appKey = myInfo.getAppKey();
                    UserEntry user = UserEntry.getUser(username, appKey);
                    if (null == user) {
                        user = new UserEntry(username, appKey);
                        user.save();
                    }
                    Toast.makeText(HomepageActivity.this,"IM登陆成功",Toast.LENGTH_SHORT).show();

                } else {
                    Toast.makeText(HomepageActivity.this,"IM登陆失败",Toast.LENGTH_SHORT).show();
                }

1.这是我代码中在app的splash页面,我在这里登陆了,会造成极光给的demo里面的用户下线,关键是这压根就是两个用户,

2.登陆之后UserInfo myInfo = JMessageClient.getMyInfo();这个方法获取到对象为null,JMessageClient.getMyInfo()官方文档中说这个是获取本地的正在登陆的用户信息,极光服务器怎么知道我是哪个用户呢,

1个回答

热门排序
  • 1、关于你说的你这里登陆了导致 demo里面的登出,需要确定是你的这个username登陆导致登出,还是别的登陆。 如果是单点登陆功能,只要username在别的设备有登陆就会被踢出登陆。客户端可以获取之前的登陆状态https://docs 展示全部