我一直在使用蓝牙智能卡读取器(Feitian br301),它似乎只是突然停止了工作。
我以为这可能是我的读卡器出现的问题,但是我有两个要开发,并且都存在相同的问题,即使使用飞天的演示应用程序代码也可以重复。演示开始像这样:
BluetoothSocket mBlueToothSocket = mBlueToothDevice.createInsecureRfcommSocketToServiceRecord(MY_UUID);
mBlueToothSocket.connect();
mInput = mBlueToothSocket.getInputStream();
mOutput = mBlueToothSocket.getOutputStream();
mReader = new ft_reader(mInput, mOutput);
这部分工作正常,没有任何问题。但是,当我打电话时:
mReader.PowerOn();
这只是
inner_card.PowerOn()
调用的包装,它返回-2
,这对我(和文档)返回代码都是未知的。另外,虽然未在我的应用程序上使用,但仅在Feitian的演示中,尝试通过
Handler
为设备注册inner_card.registerCardStatusMonitoring(Handler)
时,还会返回未知的错误代码:-1
。TL; DR
我的蓝牙设备会创建一个套接字并毫无问题地连接到它,为什么在那之后它不能正常工作,甚至注册一个处理程序?
最佳答案
调用PowerOn()时,需要在读取器中插入智能卡。此方法应仅为卡供电并读取ATR,因此,如果它不适用于当前卡,则应尝试使用其他卡。