您好我正在从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);
}
答案 0 :(得分:1)
如果问题仅在if条件下尝试此代码
if(text.toLowerCase().contains("silent")){
...
...
}
答案 1 :(得分:0)
NDEF文本记录在实际文本之前包含有关文本语言的信息,更重要的是文本编码(使用的字符集)。您应该检查这些字节以了解实际文本是以UTF-8还是UTF-16编码(并使用它来将字节转换为字符串)。