Android NFC标签读取问题
这是我读取NFC标签的代码。为什么身份验证总是失败?它正在检测卡,但没有读取数据。你能帮帮我吗?为什么不执行块?我错在哪里Android NFC标签读取问题,android,authentication,nfc,Android,Authentication,Nfc,这是我读取NFC标签的代码。为什么身份验证总是失败?它正在检测卡,但没有读取数据。你能帮帮我吗?为什么不执行块?我错在哪里 void resolveIntent(Intent intent) { String action = intent.getAction(); if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) { Tag tagFromIntent = intent.getParcelableExtra(NfcAdap
void resolveIntent(Intent intent)
{
String action = intent.getAction();
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action))
{
Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
MifareClassic mfc = MifareClassic.get(tagFromIntent);
byte[] data;
try
{
mfc.connect();
boolean auth = false;
String cardData = "";
int sectorCount = mfc.getSectorCount();
int blockCount = 0;
int blockIndex = 0;
for(int j = 0; j < sectorCount; j++)
{
auth = mfc.authenticateSectorWithKeyA(j, MifareClassic.KEY_DEFAULT);
if(auth)
{
blockCount = mfc.getBlockCountInSector(j);
blockIndex = 0;
for(int i = 0; i < blockCount; i++)
{
blockIndex = mfc.sectorToBlock(j);
data = mfc.readBlock(blockIndex);
cardData = cardData + getHexString(data, data.length);
blockIndex++;
}
}
else
{
// Authentication failed - Handle it
showAlert(AUTH); //this alert message is executing always
}
}
Toast.makeText(getApplicationContext(), cardData, Toast.LENGTH_LONG).show();
}
catch (IOException e)
{
Log.e(TAG, e.getLocalizedMessage());
showAlert(NETWORK);
}
}//end of if
}// End of method
无效解析意图(意图)
{
String action=intent.getAction();
如果(NfcAdapter.ACTION\u TECH\u DISCOVERED.equals(ACTION))
{
tagFromIntent=intent.getParcelableExtra(NfcAdapter.EXTRA_标记);
MifareClassic mfc=MifareClassic.get(tagFromIntent);
字节[]数据;
尝试
{
mfc.connect();
布尔auth=false;
字符串cardData=“”;
int sectorCount=mfc.getSectorCount();
int blockCount=0;
int blockIndex=0;
对于(int j=0;j
由于它不是新标签,并且是由另一个应用程序编写的,因此我怀疑身份验证密钥已更改。您正在使用默认键,但其他应用程序可能已更改它们。老款诺基亚手机一直都在这样做。在这种情况下,您需要了解keyA的新密钥是什么,而不是使用MifareClasic.KEY\u DEFAULT,因为它不是新标签,并且是由另一个应用程序编写的,我怀疑身份验证密钥已更改。您正在使用默认键,但其他应用程序可能已更改它们。老款诺基亚手机一直都在这样做。在这种情况下,您需要确定keyA的新密钥是什么,而不是使用MifareClasic.KEY\u DEFAULT,尝试使用MifareClassic.KEY\u NFC\u FORUM作为keyA
尝试使用MifareClassic.KEY\u NFC\u论坛
作为keyA
它是一个新标签还是以前用另一个读卡器写入的?它不是一个新标签。它是由另一个应用程序写入的。它是一个新标记还是以前用另一个读卡器写入的?它不是一个新标记。它是由另一个应用程序编写的