Android 13 getNdefMessage получает значение null после writeMessageAndroid

Форум для тех, кто программирует под Android
Ответить
Гость
 Android 13 getNdefMessage получает значение null после writeMessage

Сообщение Гость »


В Android 13, когда вы записываете необходимое значение и затем получаете его, данные возвращаются как нулевые. В Android 12 возвращается без проблем. Какую часть мне следует редактировать? Когда я посмотрел на изменения между версиями SDK 31 и 33, я не увидел никаких изменений, связанных с NFC. Есть ли какие-то изменения в вопросах, связанных с NFC, при обновлении до 33? Не можете писать и читать на Android 13? Я прочитал статью.

публичный класс TestSensor расширяет AppCompatActivity { частный NfcAdapter nfcAdapter = null; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); пытаться { nfcAdapter = NfcAdapter.getDefaultAdapter(это); } поймать (Исключение е) { е.printStackTrace(); } } @Override общественная недействительность onResume () { супер.онрезюме(); пытаться { если (nfcAdapter!= ноль) { Параметры пакета = новый Bundle(); options.putInt(NfcAdapter.EXTRA_READER_PRESENCE_CHECK_DELAY, 250); nfcAdapter.enableReaderMode(this,new NfcReaderClass(), NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_NFC_B | NfcAdapter.FLAG_READER_NFC_F | NfcAdapter.FLAG_READER_NFC_V, параметры); } } поймать (Исключение е) { е.printStackTrace(); } } @Override protected void onNewIntent (намерение намерения) { super.onNewIntent(намерение); } @Override общественная недействительность onPause () { супер.онПауза(); пытаться { если (nfcAdapter!= ноль) { nfcAdapter.disableReaderMode(это); } } поймать (Исключение е) { е.printStackTrace(); } } @Override общественная недействительность onDestroy () { супер.onDestroy(); } } Класс NfcReaderClass реализует NfcAdapter.ReaderCallback { частный тег mTag = null; частный Ndef m_Ndef = null; @Override public void onTagDiscovered (тег тега) { пытаться { если (тег!= ноль){ this.mTag = тег; записьNfcNdef(); } } поймать (Исключение е) { е.printStackTrace(); } } общественная недействительность writeNfcNdef(){ пытаться { this.m_Ndef = Ndef.get(this.mTag); если (this.m_Ndef != ноль){ byte[] info2 = hexStringToByteArray("AA00"); Запись NdefRecord = RecordUtil.makeMimeTypeRecord("app/x-sensor", null, info2); NdefMessage msg = новый NdefMessage (новый NdefRecord [] {запись}); this.m_Ndef.connect(); this.m_Ndef.writeNdefMessage(msg); this.m_Ndef.close(); this.m_Ndef = Ndef.get(this.mTag); this.m_Ndef.connect(); NdefMessage msg1 = this.m_Ndef.getNdefMessage(); Log.e("msg","!!! "+ msg1); } } поймать (Исключение е) { е.printStackTrace(); } } } Я пробовал писать в onNewIntent, а также в onResume. Я также попробовал включитьReaderMode и EnableForegroundDispatch.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»