Android上的Mifare授权具有奇怪的行为

时间:2013-07-04 07:07:39

标签: android nfc mifare

我面临一种奇怪的行为。密钥A和B有权读取块0和0。 1& 2.(访问条件设置为:6E1789) 但我只能用密钥A读取,因为使用密钥B,Android应用程序检测到新的NFC标签并丢失了最后一个,所以她进入“onPause”然后“onNewIntent”,这一遍又一遍......

这里是我读取数据的函数(对于密钥A是相同的,但authenticateSectorWithKeyB当然是由authenticateSectorWithKeyA替换)。

public byte[] readOneSectorOneBlockKeyB(byte[] key, int sectorNumber, int blockNumber) throws MifareException {
        byte[] data = null;
        try {
            boolean auth = false;
            int bIndex = 0;
            auth = mfc.authenticateSectorWithKeyB(sectorNumber, key);
            if (auth) {
                bIndex = 0;
                bIndex = mfc.sectorToBlock(sectorNumber);
                data = mfc.readBlock(bIndex + blockNumber);
            } else {
                throw new MifareException("Authentification failed");
            }
        } catch (IOException e) {
            throw new MifareException(e.getLocalizedMessage());
        }
        return data;
    }

系统没有捕获IOException ... 我不知道问题出在哪里?

0 个答案:

没有答案