注册

android 如何判断我使用的帐号是否已经在其它设备上登录

如题,我想在每次登录的时候,先做一个判断,判断我的帐号有没有在其它设备上登录,然后决定是不是要重新输入密码登录。而不是说就直接再把对方踢掉。
补充:因为环信本身有被踢掉的通知机制,所以,当一个设备上登录成功之后,完全退出程序,保证收不到在其它设备上登录的通知, 然后再运行程序。
已邀请:

lizg - ……

当掉线时,Android SDK 会自动重连,无需进行任何操作,通过注册连接监听来知道连接状态。

在聊天过程中难免会遇到网络问题,在此 SDK 为您提供了网络监听接口,实时监听
可以根据 disconnect 返回的 error 判断原因。若服务器返回的参数值为EMError.USER_LOGIN_ANOTHER_DEVICE,则认为是有同一个账号异地登录;若服务器返回的参数值为EMError.USER_REMOVED,则是账号在后台被删除。


//注册一个监听连接状态的listener
EMClient.getInstance().addConnectionListener(new MyConnectionListener());
 
//实现ConnectionListener接口
private class MyConnectionListener implements EMConnectionListener {
    @Override
    public void onConnected() {
    }
    @Override
    public void onDisconnected(final int error) {
        runOnUiThread(new Runnable() {
 
            @Override
            public void run() {
                if(error == EMError.USER_REMOVED){
                    // 显示帐号已经被移除
                }else if (error == EMError.USER_LOGIN_ANOTHER_DEVICE) {
                    // 显示帐号在其他设备登录
                } else {
                if (NetUtils.hasNetwork(MainActivity.this))
                    //连接不到聊天服务器
                else
                    //当前网络不可用,请检查网络设置
                }
            }
        });
    }
}

要回复问题请先登录注册