我一直在使用蓝牙智能卡读取器(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,因此,如果它不适用于当前卡,则应尝试使用其他卡。

09-11 10:06