Android NDEF rekord yukidan g'alati belgi

Men Android NFC bilan kodlashni boshladim, NDEF ma'lumotlarini muvaffaqiyatli o'qish va yozishni mifare klassik yorliqqa aylantirdim. Muammo ndef yozuvidan foydali yukni o'qiyotganda, u har doim matnning boshida '* en' belgisini o'z ichiga oladi. Bu tilning belgisi, deb o'ylayman, lekin qanday qilib bu belgisiz haqiqiy matnli xabarni olish mumkin?

Bu tegdan qaysi ilovani o'qiydi, asl matn "Salom Dunyo"

enter image description here Here is the code to read

@Override
public void onNewIntent(Intent intent) {
    Log.i("Foreground dispatch", "Discovered tag with intent: " + intent);
  //mText.setText("Discovered tag NDEF " + ++mCount + " with intent: " + intent);

    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
        Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);

        if (rawMsgs != null) {
            NdefMessage[] msgs = new NdefMessage[rawMsgs.length];

            for (int i = 0; i < rawMsgs.length; i++) {
                msgs[i] = (NdefMessage) rawMsgs[i];
            }

            NdefMessage msg = msgs[0];

            try {
            mText.setText(new String(msg.getRecords()[0].getPayload(), "UTF-8"));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
8
O'ylaymanki "eng" "inglizcha" dan keladi. Siz tasodifan til kodini qo'shganingizga aminman. Siz XML-da til tegini o'zgartirsangiz, siz boshqa belgilar ketma-ketligini olishingiz mumkin. Iltimos, buni tekshirib ko'ring, chunki bu usul hech bo'lmaganda qaerdan kelganini bilib olasiz va siz Google'da yechim uchun qo'ng'iroq qilishingiz mumkin.
qo'shib qo'ydi muallif Lajos Arpad, manba
Lajos, Ben ... sharhlaringiz uchun tashakkur, men boshqa ilovani, NFC yorlig'i ma'lumotidan foydalanganimdan so'ng, dastur "Salom Dunyoviy" ni ko'rsatdi. Nils Pipenbrik quyida bayon qilganidek, bu muammoni hal qildim. Ushbu havola kod.google.com/p/openmobster/wiki/NFC ko'rsatadi. tovush ma'lumotlarini to'g'ri o'qish uchun.
qo'shib qo'ydi muallif Lorensius W. L. T, manba
qo'shib qo'ydi muallif ThomasRS, manba
Tegani yozadigan kodni joylashtira olsangiz, bu foydali bo'ladi. Siz taglikni qanday qilib yozishingiz mumkinligini ko'rish uchun tagingizni o'qish uchun boshqalarning ilovasidan foydalanishni xohlaysizmi yoki u qanday o'qiyotganingizda? (Agar Ndef xabarida bo'lgani kabi bir xil ma'lumotni ko'rsatsa, u faqat "Salom dunyo ..." ni ko'rsatsa, u o'qish muammosi bo'lib qoladi.)
qo'shib qo'ydi muallif Ben Ward, manba

1 javoblar

Ko'rib turganingizdek, UTF8 ga aylantirilgan NDef matn yozuvi xom-xatarlari.

NDef matn yozuvi shunga o'xshash tarzda yaratilgan:

Birinchi byte: Control-Byte

Bit 7: 0: Matn UTF-8 da kodlangan: Matn kodlangan   UTF16

     

Bit 6: RFU (Nolga o'rnatish kerak)

     

Bit 5..0: IANA til kodining uzunligi.

Buning ortidan RFC 3066 da belgilangan US-ASCII (sizning holingizda) ichida saqlanadigan til kodi amal qiladi. Til-kod uzunligi nazorat baytda berilgan.

Buni nazorat-byte bit 7-da ko'rsatilgan formatda matni kuzatib boradi.

Bo'sh kvadrat belgilar sizning xom ma'lumotlarni UTF-8ga aylantirishdan iborat. Sizning ishingizdagi nazorat-bytening soni qiymati 2 bo'lganligiga ishonch hosil qilaman. Bu raqam uchun hech qanday bosma belgisi mavjud bo'lmaganligi sababli unicode-setdan bosib chiqariladigan joy egasi belgisi bilan almashtiriladi. Bu odatda bo'sh kvadrat shaklida ko'rsatiladi.

14
qo'shib qo'ydi
Xristian Nils, sizning javobingiz uchun rahmat, hozirda foydali yuk ma'lumotlarni to'g'ri o'qishni bilaman, ushbu havola code.google.com/p/openmobster/wiki/NFC buni qanday amalga oshirilishini ko'rsatadi. ;)
qo'shib qo'ydi muallif Lorensius W. L. T, manba
Shuningdek, bu erda NDEF Matn Yozuv turi ta'rifi, boshqalarga yordam berishiga umid qilaman. maintag.fr/fichiers/pdf-fr/nfcforum-ts-rtd-text-1-0.‌ pdf
qo'shib qo'ydi muallif Lorensius W. L. T, manba
Keyingi safar, bog'lanish o'rniga, qadriyatlaringizni javobingizga nusxa ko'chiring va joylashtiring. Ikkala yo'nalish ham o'likdir!
qo'shib qo'ydi muallif nemicolopterus, manba