比较NFC标签的数据读取

时间:2012-09-18 04:47:40

标签: android nfc

您好我正在从NFC标签中读取数据并尝试将其与字符串进行比较,但是在比较字符串时,if循环正在失败。我用于读取NFC数据并将其与String进行比较的代码为。谢谢。

   Parcelable[] messages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
                //NdefMessage message = ndef.getNdefMessage();
                if (messages != null) {
                    NdefMessage[] ndefMessages = new NdefMessage[messages.length];
                    for (int i = 0; i < messages.length; i++) {
                        ndefMessages[i] = (NdefMessage) messages[i];
                    }
                NdefRecord record = ndefMessages[0].getRecords()[0];

                byte[] payload = record.getPayload();
                String text = new String(payload);
                txtRead.setText(text);


                                if(text.equalsIgnoreCase("silent")){
                    Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();
                    AudioManager audiomanage = (AudioManager)getSystemService(Context.AUDIO_SERVICE);  
                    audiomanage.setRingerMode(AudioManager.RINGER_MODE_SILENT); 
                }

2 个答案:

答案 0 :(得分:1)

如果问题仅在if条件下尝试此代码

if(text.toLowerCase().contains("silent")){
...
...
}

答案 1 :(得分:0)

NDEF文本记录在实际文本之前包含有关文本语言的信息,更重要的是文本编码(使用的字符集)。您应该检查这些字节以了解实际文本是以UTF-8还是UTF-16编码(并使用它来将字节转换为字符串)。