私は奇妙な行動に直面しています。キー 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 をキャッチしません...問題の原因がわかりません。