2012-10-13 49 views
0

我想使用Android NFC API在NDEF記錄中寫入電子名片數據。我可以編寫單個URL或一些長度小於46字節的文本或電話號碼。但是,當我嘗試寫入超過此長度的vCard數據時 - 例如150字節 - 我無法將它們存儲在卡中,因爲此數據的記錄長度較短。我應該在多個街區或部門寫下這個記錄。NDEF記錄和電子名片數據

我做這樣的事情,

byte[] vCardDataBytes = vCardData.getBytes(Charset.forName("UTF-8")); 
byte[] vCardPayload = new byte[vCardDataBytes.length+1]; 
System.arraycopy(vCardDataBytes, 0, vCardPayload, 1, vCardDataBytes.length); 
// vCardDataBytes[0] = (byte)0x00; 
ndefRecord = new NdefRecord(NdefRecord.TNF_MIME_MEDIA,"text/x-vcard".getBytes(),new byte[] {}, vCardPayload); 

有人點我在一塊的代碼我怎麼能寫NDEF記錄進行的跨多個部門在Android的?我如何指定它們?

感謝 Domnic

+0

您的標籤能夠首先處理150個字節嗎? –

+0

我正在使用Mifare 1K和Ultralight ..他們有足夠的內存。 – benya

+0

看起來這是由較低級別的代碼處理的,所以你不應該把它分開。試用恩智浦Writer或類似的應用程序,看看它是否適用於您的標籤。還要檢查getMaxSize()返回的是什麼。 –

回答

0

writeNdefMessage應採取一切分裂的關懷和寫你。正如「NFC Guy」指出的那樣,Mifare UL只處理約64字節的數據。對於Mifare1K,請確保它是一張未格式化的卡,並且塊和扇區不會被任何以前的應用程序阻止。此外,您可以通過getMaxSize()函數找到最大可用尺寸。