2011-05-19 13 views
10

Bu bana "[B @ 40521c40" gibi bir kimlik verir, ancak bu kimlik her okuduğunda değişir.Android'de NFC etiketinin benzersiz kimliğini nasıl okuyorsunuz?

Herhangi bir yardım büyük memnuniyetle karşılanacaktır.

Teşekkürler.

+1

Aehm burada bulunan aşağıdaki işlevi kullanılır, ne gerçek alma hakkında gitmek nasıl UID bayt dizinin adresini, içerikleri değil ... –

+1

çıktısını ediyoruz içindekiler? Teşekkürler. – user635028

cevap

10

yine dizeye byte dönüştürmek gerekir:

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

Ben benzer konuya koştu ve çözmek olabilir. Sorun dizeye dönüşüm.

myTag.getId(), byte dizisini döndürür. Bu baytları onaltılık dizgeye dönüştürmelisiniz. Ben 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); 
}