- MifareClassic.transceive 如何读写?
微信小程序的文档上好像提到了 对于MifareClassic的分块读写 指令 0x30 + 块号 可以用于读取某个块的数据指令 0xA0 + 块号 + 待写入数据 可以用于往某个块写入数据https://developers.weixin.qq.com/miniprogram/dev/api/device/nfc/MifareClassic.html 在搜索卡的过程中,能看到命令行打印的日志是支持 MifareClassic的 但是我们在读数据的时候遇到了问题,按道理来说下面的代码应该读取到一块的数据,但是每次不管是读什么卡返回的都是 0x04 (请问是不是读取卡片之前,还需要其它的命令,例如授权,希望有大神可以出来指点一下) const READ_FIRST = '3000' // 十六进制命令字符串 读取第一块的数据 var adapter = null async function testNFC() { adapter = wx.getNFCAdapter() console.log('wx.getNFCAdapter', adapter) initAdapter(adapter) try { // 小程序api promise化的帮助函数 let res = await utils.apiPromise(adapter.startDiscovery) console.log('startDiscovery', res) } catch (e) { console.log(e) utils.showMsg('nfc识别失败,错误码' + e.errCode + `错误信息:${e.errMsg}`) } } function initAdapter(adapter) { // 监听发现卡片的事件 adapter.onDiscovered(async function (card) { console.log('onDiscovered', card) adapter.stopDiscovery() adapter.offDiscovered() let res = {} const instance = adapter.getMifareClassic() instance.connect({ success: async res => { let res1 = {} res1 = await runCommand(instance, READ_FIRST) // read first console.log(res1) }, fail: e => console.error(e) }) }) } function runCommand(instance, command) { console.log('runCommand', command) if (typeof command === 'string') { // 十六进制字符转ArrayBuffer 此函数不在此处列出 command = hexStringToArrayBuffer(command) } return new Promise(function(resolve, reject) { instance.transceive({ data: command, success: res => { // buffer 转十六进制字符串的函数 不在此处列出 console.log('runCommand success:', res, buf2hex(res.data)) resolve( buf2hex(res.data) ) }, fail: err => { console.log('runCommand error:', err) reject(err) } }) }) }
2020-07-27 - NFC MifareClassic transceive发送指令返回13017
NFC读MifareClassic卡 ,验证密码后读卡 验密指令[0x60, 0x04, 0xAE, 0x38, 0x40, 0x39, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] 读卡指令[0x30, 0x04] ,返回 {"errMsg":"transceive:fail:system internal error","errCode":13017} 用[0x30, 0x04, 0x0]可以成功返回,但数据是错的 卡没有问题,Android原生程序可以读写
2020-11-17 - 经常出现(50%的概率)的这个log是怎么回事?
log writeFile err writeFile:fail no such file or directory http://usr/miniprogramLog/log1 没有报错 程序看上去也能正常运行 但是log里 一直跳这一条
2020-03-25