2

ISO15693 タグと通信しようとしています。タグのタイプは TI HF-I Plus です。Get System Info コマンドを発行すると、コマンドは正常に実行され、適切な応答が受信されます。タグに送信された他のほとんどのコマンドでは、フレームワークは応答を適切に処理していないようです。TAG LOST 例外は、他のほとんどのコマンドでスローされます。Android に ISO15693 コマンドを正常に実装した人はいますか?

ソースコード:

@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;
}
4

0 に答える 0