在用魅族手机进行websocket通信的时候,遇到一个问题:size 不正确。其他手机没问题
方式一:添加无用代码
//*********************************在未找到魅族手机出现是构造数据错误的原因之前,此处代码误删除****************************************** // JJLogger.logInfo(TAG,"dataBytesLen="+dataBytesLen + ", sizeEndPos=" + sizeEndPos + ", bodyEndPos=" + bodyEndPos); // JJLogger.logInfo(TAG,"登陆cmd = :"+LOGON_SEND); // try { // Thread.sleep(1000); // } catch (InterruptedException e) { // e.printStackTrace(); // } for(int jj = 0; jj < 1; jj++) { /* * 此部分代码,为了解决魅族手机发送数据错误而写; * 具体原因不明; * 加一条log 或者 休眠等;均可解决问题 * */ int aaa = 0; aaa = 1000; aaa = aaa + 1000; } //*********************************在未找到魅族手机出现是构造数据错误的原因之前,此处代码误删除****************************************** for (int i = 0; i < dataBytesLen; i++) { if (i < sizeEndPos) { data[i] = dataSizeBytes[i];//Size } else if (i >= sizeEndPos && i < bodyEndPos) { data[i] = cmdBytes[i - sizeEndPos]; } else { data[i] = bodyBytes[i - bodyEndPos]; }}
方式二:改用系统的方法构造data数据
//data byte[] data = new byte[dataBytesLen]; System.arraycopy(dataSizeBytes,0,data,0,4); System.arraycopy(cmdBytes,0,data,4,4); System.arraycopy(bodyBytes,0,data,8,bodyBytesLen);