0

私は奇妙な行動に直面しています。キー A と B には、ブロック 0 & 1 & 2 を読み取る権利があります。 (アクセス条件は 6E1789 に設定されています) しかし、キー B では、Android アプリケーションが新しい NFC タグを検出し、最後のタグを失ったため、キー A でのみ読み取ることができます。 1 つなので、彼女は「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 をキャッチしません...問題の原因がわかりません。

4

0 に答える 0