Android nfcA.connect (), nfcA.transceive (), nfcA.setTimeout () e nfcA.getMaxTransceiveLength ()
Eu tenho várias perguntas sobre o NfcA para iniciantes. Parece haver pouca orientação sobre isso nodocs e em outras partes da web, espero que ninguém se importe comigo em fazer algumas perguntas básicas aqui ...
Estou usando o nfcA.transceive () paraEscreva dados para minha tag NTAG213 como esta:
byte[] result = nfcA.transceive(new byte[] {
(byte)0xA2, // WRITE
(byte)(pageNum & 0x0ff),
myData[0], myData[1], myData[2], myData[3]
});
1 oresult
array é um único byte de valor 10. O que isso significa e quais outros valores devo procurar?
Eu também estou usando o mesmo método paraler dados das minhas tags NTAG213:
byte[] result = nfcA.transceive(new byte[] {
(byte)0x30, // READ
(byte)(pageNum & 0x0ff)
});
2) Eu esperava que isso retornasse 4 bytes de dados do usuário (ou seja, os 4 bytes que correspondem ao meu pageNum), mas retornou 16 bytes. Por que é esse o caso?
3) É uma boa prática verificarnfcA.isConnected()
antes de ligarnfcA.connect()
e, em caso afirmativo, é provável que exista uma penalidade de desempenho significativa nesse processo? (Pergunto como vi exemplos de código de fontes respeitáveis de ambos.)
4) É melhor ligarnfcA.setTimeout()
antes ou depoisnfcA.connect()
?
5) Para minhas tags NTAG213nfcA.getMaxTransceiveLength()
retorna 253. Isso realmente significa que eu posso gravar até 251 bytes de dados do usuário (mais os 2 outros bytes) de uma só vez e, nesse caso, isso é aconselhável ou é melhor escrever cada página (4 bytes) comnfcA.transceive()
chamadas?