Команда NfcV Transceive выдает исключение потери тега с тегом TI HF-I plus (ISO15693) в Android

Я пытаюсь поговорить с тегом ISO15693. Тип тега — TI HF-I Plus. Когда я запускаю команду Get System Info, команда выполняется нормально, и я получаю правильный ответ. Для большинства других команд, отправляемых в тег, фреймворк, похоже, не обрабатывает ответ должным образом. Исключение TAG LOST выдается для большинства других команд. Кто-нибудь успешно внедрил команды ISO15693 в Android?

Исходный код:

@Override
protected byte[] doInBackground(byte[]... params) {

    NfcV mNfcVObject = NfcV.get(mTag);
    byte[] mCommand = null;

    switch(params[0][0]){
        case ReadSingleBlock:
            mCommand = new byte[]{0x02, 0x20, params[1][0]};
            break;
        case ReadMultipleBlocks:
            mCommand = new byte[]{0x02, 0x23,params[1][0],params[2][0]};
            break;
        case WriteSingleBlock:
            mCommand = new byte[]{0x42, 0x21, (byte)params[1][0],params[2][0],params[2][1],params[2][2],params[2][3]};
            break;
        case GetSystemInfo:
            mCommand = new byte[]{0x00,(byte)0x2B};
            break;
    }


    if (mNfcVObject != null) {
        try {
            mNfcVObject.connect();
        } catch (IOException e) {
            e.printStackTrace();
            Log.e(LOG_TAG, e.toString());
        }

        if (mNfcVObject.isConnected()) {

            int i = 0;

                try {
                    mResponse = mNfcVObject.transceive(mCommand);
                    String responseString = FlomioNdefHelper.mBytesToHexString(mResponse);
                    Log.d(String.format(LOG_TAG + " Response %d", i), responseString);
                } catch (IOException e) {
                    e.printStackTrace();
                    Log.e(LOG_TAG, e.toString());
                }

            try {
                mNfcVObject.close();
            } catch (IOException e) {
                e.printStackTrace();
                Log.e(LOG_TAG, e.toString());
            }
        }
    }

    return mResponse;
}

@Override
protected void onPostExecute(byte[] response) {
    super.onPostExecute(response);
    mOnCommandExecutedCallBack.onCommandExecuted(response);
    return;
}

person perceptron    schedule 03.06.2013    source источник
comment
Не могли бы вы показать часть вашего исходного кода?   -  person NFC guy    schedule 05.06.2013
comment
Парень @NFC обновил пост, добавив код. На самом деле, эта проблема все еще существует. Однако в настоящее время я считываю каждый блок из тега ISO15693 (поскольку команда «Чтение одного блока» работает), чтобы проверить мою операцию записи (операция записи в один блок или несколько блоков завершается с ошибкой TAG_LOST Exception).   -  person perceptron    schedule 12.06.2013
comment
Парень @NFC Также я вижу из вашего поста здесь, nfc" title="почему я не могу читать st m24lr64 как сообщения ndef с Android nfc"> stackoverflow.com/questions/10277337/, вы говорите, что объект NfcV поддерживается на Nexus 4. Вы говорите, если тег TI ISO15693 , Кроме того, Pro или Standard подключены к Nexus 4, намерение перейдет к NDEF_Discovered вместо TAG_Discovered?   -  person perceptron    schedule 12.06.2013
comment
Да, если тег отформатирован для содержания содержимого NDEF, действие намерения NFC может быть NDEF_DISCOVERED (если есть приложения, которые фильтруют сообщения определенного типа NDEF, считанные из тега).   -  person NFC guy    schedule 30.06.2013
comment
Вы нашли решение ?   -  person Rachita Nanda    schedule 09.04.2015