0

こんにちは、NFC タグからデータを読み取って文字列と比較しようとしていますが、文字列の比較中に if ループが失敗しています。NFC データを読み取って文字列と比較するコードは次のとおりです。ありがとうございました。

   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); 
                }
4

2 に答える 2

1

問題が条件の場合のみにある場合は、このコードを試してください

if(text.toLowerCase().contains("silent")){
...
...
}
于 2012-09-18T05:27:46.397 に答える
0

NDEFテキストレコードには、実際のテキストの前に、テキストの言語に関する情報が含まれ、さらに重要なことに、テキストエンコーディング(使用される文字セット)が含まれます。これらのバイトを調べて、実際のテキストがUTF-8またはUTF-16のどちらでエンコードされているかを確認する必要があります(バイトを文字列に変換するために使用します)。

于 2012-09-18T05:55:02.357 に答える