在這裏,我正在開發一個adroid應用程序,它將讀取NFC標籤中的記錄。下面是我的程序中用於讀取標籤的代碼部分,當它讀取時,出現越界異常。ArrayIndexOutOfBoundsException發生
NdefMessage[] msgs = null;
String action = intent.getAction();
if(NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)||
NfcAdapter.ACTION_TAG_DISCOVERED.equals(action)){
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if(rawMsgs != null){
msgs = new NdefMessage[rawMsgs.length];
for(int i=0; i<rawMsgs.length; i++){
msgs[i] = (NdefMessage) rawMsgs[i];
}
}else{
byte[] empty = new byte[]{};
NdefRecord record = new NdefRecord(NdefRecord.TNF_UNKNOWN, empty, empty, empty);
NdefMessage msg = new NdefMessage(new NdefRecord[]{record});
msgs = new NdefMessage[]{msg};
}
}
if(msgs==null){
String[] array = new String[]{"No Tag discovered!"};
return array;
}else{
String[] array = new String[]{new String(msgs[0].getRecords()[0].getPayload()),
new String(msgs[1].getRecords()[0].getPayload())
};
return array;
}
當我隱瞞了這句話 「新的字符串(消息1 .getRecords()[0] .getPayload())」,我的程序都能流暢運行,所以我很確定程序在這一行。請問我該如何解決這個問題?
我試圖輸出一些值rawMsgs和郵件[0] .getReord()的兩個長度是長度爲1的,請問其中爲所述第二記錄? – Conrad 2012-07-17 08:54:37