Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android “我能用它做什么?”;把「;在这个代码中?_Android_Arduino - Fatal编程技术网

Android “我能用它做什么?”;把「;在这个代码中?

Android “我能用它做什么?”;把「;在这个代码中?,android,arduino,Android,Arduino,嗨,我一直在写一本书中的代码,但代码中有错误,因为我不是一个好的应用程序开发人员,所以我无法解决这个问题。 这是密码 public static MQTTMessage decode(final byte[] message) { int i = 0; MQTTMessage mqtt = new MQTTMessage(); mqtt.type = (message[i]>>4 & 0x0F); mqtt.DUP = ((messag

嗨,我一直在写一本书中的代码,但代码中有错误,因为我不是一个好的应用程序开发人员,所以我无法解决这个问题。 这是密码

    public static MQTTMessage decode(final byte[] message) {
    int i = 0;
    MQTTMessage mqtt = new MQTTMessage();
    mqtt.type = (message[i]>>4 & 0x0F);
    mqtt.DUP = ((message[i] >> 3) & 0x01) == 0 ? false : true;
    mqtt.QoS = (message[i] >> 1) & 0x03;
    mqtt.retain = (message[i] & 0x01) == 0 ? false : true;
    i++;
    int multiplier = 1;
    int length = 0;
    byte digit = 0;
    do {
        digit = message[i++];
        length += (digit & 127) * multiplier;
        multiplier *= 128;
    } while ((digit & 128) != 0);
    mqtt.remainingLength = length;
    switch (mqtt.type) {
    case CONNECT:
        int protocol_name_len = (message[i++] << 8 | message[i++]);
        mqtt.variableHeader.put("protocol_name", new String(message, i, protocol_name_len));
        mqtt.variableHeader.put("protocol_version", message[i++]);
        mqtt.variableHeader.put("has_username", ((message[i++] << 7) & 0x01) == 0 ? false : true);
        mqtt.variableHeader.put("has_password", ((message[i] << 6) & 0x01) == 0 ? false : true);
        mqtt.variableHeader.put("will_retain", ((message[i] << 5) & 0x01) == 0 ? false : true);
        mqtt.variableHeader.put("will_qos", ((message[i] << 3) & 0x03));
        mqtt.variableHeader.put("will", ((message[i] << 2) & 0x01) == 0 ? false : true);
        mqtt.variableHeader.put("clean_session", ((message[i] << 1) & 0x01) == 0 ? false : true);
        int keep_alive_len = (message[i++] << 8 | message[i++]);
        mqtt.variableHeader.put("keep_alive", new String(message, i, keep_alive_len));
        break;
公共静态MQTTMessage解码(最终字节[]消息){
int i=0;
MQTTMessage mqtt=新的MQTTMessage();
mqtt.type=(消息[i]>>4&0x0F);
mqtt.DUP=((消息[i]>>3)和0x01)==0?false:true;
mqtt.QoS=(消息[i]>>1)&0x03;
mqtt.retain=(消息[i]&0x01)==0?false:true;
i++;
整数乘数=1;
整数长度=0;
字节数字=0;
做{
数字=消息[i++];
长度+=(数字和127)*乘数;
乘数*=128;
}而((数字&128)!=0);
mqtt.remainingLength=长度;
开关(mqtt.type){
案例连接:

int protocol_name_len=(消息[i++]您得到了什么错误?向我们显示堆栈跟踪。“类型映射中的方法put(String,String)不适用于参数(String,byte)”,您已经知道了。当您应该在put调用中传入字符串时,您正在传入字节。有关如何将字节数组转换为字符串,请参阅。