Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.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
Java “如何修复”;GetStatus Write RFID“API未知”错误数据(x)-字段只能接受字值;安卓RFID 8500斑马_Java_Android_Rfid - Fatal编程技术网

Java “如何修复”;GetStatus Write RFID“API未知”错误数据(x)-字段只能接受字值;安卓RFID 8500斑马

Java “如何修复”;GetStatus Write RFID“API未知”错误数据(x)-字段只能接受字值;安卓RFID 8500斑马,java,android,rfid,Java,Android,Rfid,我正试图开发和应用读写射频标签。阅读是完美的,但我在写作方面有问题。特别是错误“GetStatus Write RFID\u API\u UNKNOWN\u error data(x)-字段只能获取字值” 我曾尝试通过获取.apk并对其进行解码来反向工程Zebra RFID API Mobile,但代码被混淆了,我无法解释为什么该应用程序的写操作有效,而我的写操作无效 我在第185页看到了错误,但我不知道是什么原因造成的 我已经尝试过将writeData强制更改为Hex,在我意识到API本身可以

我正试图开发和应用读写射频标签。阅读是完美的,但我在写作方面有问题。特别是错误“GetStatus Write RFID\u API\u UNKNOWN\u error data(x)-字段只能获取字值”

我曾尝试通过获取.apk并对其进行解码来反向工程Zebra RFID API Mobile,但代码被混淆了,我无法解释为什么该应用程序的写操作有效,而我的写操作无效

我在第185页看到了错误,但我不知道是什么原因造成的

我已经尝试过将writeData强制更改为Hex,在我意识到API本身可以做到这一点之前,我也尝试过更改writeData的长度,但它只得到一个null值。我太迷路了

public boolean WriteTag(String sourceEPC, long Password, MEMORY_BANK memory_bank, String targetData, int offset) {
    Log.d(TAG, "WriteTag " + targetData);
    try {
        TagData tagData = null;
        String tagId = sourceEPC;
        TagAccess tagAccess = new TagAccess();
        tagAccess.getClass();
        TagAccess.WriteAccessParams writeAccessParams = tagAccess.new WriteAccessParams();
        String writeData = targetData; //write data in string
        writeAccessParams.setAccessPassword(Password);
        writeAccessParams.setMemoryBank(MEMORY_BANK.MEMORY_BANK_USER);

        writeAccessParams.setOffset(offset); // start writing from word offset 0
        writeAccessParams.setWriteData(writeData);
        // set retries in case of partial write happens
        writeAccessParams.setWriteRetries(3);
        // data length in words
        System.out.println("length: " + writeData.length()/4);
        System.out.println("length: " + writeData.length());
        writeAccessParams.setWriteDataLength(writeData.length()/4);
        // 5th parameter bPrefilter flag is true which means API will apply pre filter internally
        // 6th parameter should be true in case of changing EPC ID it self i.e. source and target both is EPC
        boolean useTIDfilter = memory_bank == MEMORY_BANK.MEMORY_BANK_EPC;
        reader.Actions.TagAccess.writeWait(tagId, writeAccessParams, null, tagData, true, useTIDfilter);
    } catch (InvalidUsageException e) {
        System.out.println("INVALID USAGE EXCEPTION: " + e.getInfo());
        e.printStackTrace();
        return false;
    } catch (OperationFailureException e) {
        //System.out.println("OPERATION FAILURE EXCEPTION");
        System.out.println("OPERATION FAILURE EXCEPTION: " + e.getResults().toString());
        e.printStackTrace();
        return false;
    }
    return true;
}

  • 密码是00
  • sourceEPC是读取后获得的标记ID
  • 内存库是内存库。内存库用户
  • 目标数据为“8426017056458”
  • 偏移量为0

它总是给我“GetStatus Write RFID\u API\u UNKNOWN\u ERROR data(x)-字段只能获取单词值”,我不知道为什么会出现这种情况,也不知道“单词值”是什么,我已经搜索过了。这也都在“操作失败例外”下。任何帮助都将不胜感激,因为网上几乎没有这方面的资源。

我发现,如果我输入“84260170”,它确实允许我写作。我假设,因为这与位计数以及“字值”的含义有关。我会自己回答,但我不具备高质量回答的专业知识,这些回答能够正确地解决问题,而不是糟糕地修补问题。请接受此评论作为伪答案,直到这个问题得到回答(如果有的话)。我发现,如果我输入“84260170”,它确实允许我写作。我假设,因为这与位计数以及“字值”的含义有关。我会自己回答,但我不具备高质量回答的专业知识,这些回答能够正确地解决问题,而不是糟糕地修补问题。请接受此评论作为伪答案,直到此问题得到回答(如果有)