2011-05-19 10 views
10
Tag myTag = (Tag) intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 
Log.i("tag ID", myTag.getId().toString()); 

यह मुझे "[बी @ 40521c40" जैसे आईडी देता है लेकिन यह आईडी प्रत्येक पढ़ने को बदल देती है।एंड्रॉइड पर एनएफसी टैग की अनूठी आईडी कैसे पढ़ते हैं?

किसी भी मदद की सराहना की जाएगी।

धन्यवाद।

+1

Aehm यहां पाया इस्तेमाल किया है, तो आप यूआईडी बाइट-सरणी के पते, नहीं सामग्री ... –

+1

बाहर प्रिंट कर रहे कैसे मैं वास्तविक करने के बारे में जाना होगा सामग्री? धन्यवाद। – user635028

उत्तर

10

आप अभी भी स्ट्रिंग के लिए बाइट बदलने की आवश्यकता:

private String bytesToHexString(byte[] src) { 
    StringBuilder stringBuilder = new StringBuilder("0x"); 
    if (src == null || src.length <= 0) { 
     return null; 
    } 

    char[] buffer = new char[2]; 
    for (int i = 0; i < src.length; i++) { 
     buffer[0] = Character.forDigit((src[i] >>> 4) & 0x0F, 16); 
     buffer[1] = Character.forDigit(src[i] & 0x0F, 16); 
     System.out.println(buffer); 
     stringBuilder.append(buffer); 
    } 

    return stringBuilder.toString(); 
} 
5

मैं वही समस्या में भाग गया और इसे हल कर सकते हैं। मुद्दा स्ट्रिंग में रूपांतरण है।

myTag.getId() बाइट सरणी देता है। आपको इन बाइट्स को हेक्स स्ट्रिंग में कनवर्ट करना चाहिए। मैं निम्नलिखित समारोह है कि मैं में stackoverflow.com

final protected static char[] hexArray = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; 
public static String bytesToHex(byte[] bytes) { 
    char[] hexChars = new char[bytes.length * 2]; 
    int v; 
    for (int j = 0; j < bytes.length; j++) { 
     v = bytes[j] & 0xFF; 
     hexChars[j * 2] = hexArray[v >>> 4]; 
     hexChars[j * 2 + 1] = hexArray[v & 0x0F]; 
    } 
    return new String(hexChars); 
} 
संबंधित मुद्दे