protected override async void OnNewIntent(Intent intent) { if (_inReadMode) { try { _inReadMode = false; Tag tag = intent.GetParcelableExtra(NfcAdapter.ExtraTag) as Tag; //Cast dei dati presenti nell'intent nella classe Tag (classe di tag generica) if (tag == null) { return; } byte[] Uid = tag.GetId(); //Recupera l'UID del tag rilevato string UidString = bin2hex(Uid); //Converte l'UID in string formato esadecimale sacca = new Sacca(); sacca.uid = UidString; idSacca.Text = UidString; if (await sacca.getSacca(this)) { editGruppo.Text = sacca.gruppo; editRh.Text = sacca.rh; statoSacca.Text = sacca.stato; } else { editGruppo.Text = ""; editRh.Text = ""; statoSacca.Text = ""; } } catch (TagLostException e) //Cattura l'eccezione nel caso in cui il tag viene allontanato dal dispositivo android { Toast.MakeText(this, e.Message, ToastLength.Short).Show(); } } }
// Il metodo OnNewIntent viene invocato dal sistema android. protected override async void OnNewIntent(Intent intent) { if (scanPaziente) //L'operatore ha cliccato sul button per lo scan del tag relativo al paziente { try { Tag tag = intent.GetParcelableExtra(NfcAdapter.ExtraTag) as Tag; //Cast dei dati presenti nell'intent nella classe Tag (classe di tag generica) if (tag == null) { return; } byte[] Uid = tag.GetId(); //Recupera l'UID del tag rilevato string UidString = bin2hex(Uid); //Converte l'UID in string formato esadecimale paziente = new Paziente(); paziente.uid = UidString; if (await paziente.getPaziente(this)) { nomePaziente.Text = paziente.nome; cognomePaziente.Text = paziente.cognome; gruppoPaziente.Text = paziente.gruppo; rhPaziente.Text = paziente.rh; } else { nomePaziente.Text = ""; cognomePaziente.Text = ""; gruppoPaziente.Text = ""; rhPaziente.Text = ""; } /* * MifareClassic mifareTag = MifareClassic.Get(tag); //Cast del Tag rilevato con la classe MifareClassic * mifareTag.Connect();//Abilita le funzioni di Input Output con il tag * if (mifareTag.AuthenticateSectorWithKeyB(3, new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF })) //Effettua l'autenticazione sul settore 3 con la chiave B * { * int firstBlock = mifareTag.SectorToBlock(3);//Ritorna il primo blocco del settore 3 * var read = mifareTag.ReadBlock(firstBlock);//Legge sul blocco firstBlock (la lettura avviene in byte) * //Converte i byte in string formato UTF-32 * var str1 = new StringBuilder(2); * str1.Append(char.ConvertFromUtf32(read[0])); * LogMessage.Text = str1.ToString(); //Gruppo sanguigno * sacca = new Sacca(); * * sacca.uid = UidString; * sacca.gruppo = str1.ToString().Trim(); * await sacca.insertSacca(this); * //Scrive sul blocco firstBlock l'array di byte (l'array deve essere di 16 byte) * mifareTag.WriteBlock(firstBlock, new byte[] { 66, 0x00, 49, 0x00, 0x00, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }); * Toast.MakeText(this, "Write succesfully", ToastLength.Short).Show(); * * } */ } catch (TagLostException e) //Cattura l'eccezione nel caso in cui il tag viene allontanato dal dispositivo android { Toast.MakeText(this, e.Message, ToastLength.Short).Show(); } } else if (scanSacca) //L'operatore ha cliccato sul button per lo scan del tag relativo alla sacca di sangue { try { Tag tag = intent.GetParcelableExtra(NfcAdapter.ExtraTag) as Tag; //Cast dei dati presenti nell'intent nella classe Tag (classe di tag generica) if (tag == null) { return; } sacca = new Sacca(); byte[] Uid = tag.GetId(); //Recupera l'UID del tag rilevato string UidString = bin2hex(Uid); //Converte l'UID in string formato esadecimale sacca.uid = UidString; if (await sacca.getSacca(this)) { gruppoSacca.Text = sacca.gruppo; rhSacca.Text = sacca.rh; statoSacca.Text = sacca.stato; } else { gruppoSacca.Text = ""; rhSacca.Text = ""; statoSacca.Text = ""; } /* * MifareClassic mifareTag = MifareClassic.Get(tag); //Cast del Tag rilevato con la classe MifareClassic * mifareTag.Connect();//Abilita le funzioni di Input Output con il tag * if (mifareTag.AuthenticateSectorWithKeyB(3, new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF })) //Effettua l'autenticazione sul settore 3 con la chiave B * { * int firstBlock = mifareTag.SectorToBlock(3);//Ritorna il primo blocco del settore 3 * var read = mifareTag.ReadBlock(firstBlock);//Legge sul blocco firstBlock (la lettura avviene in byte) * //Converte i byte in string formato UTF-32 * var str1 = new StringBuilder(2); * str1.Append(char.ConvertFromUtf32(read[0])); * LogMessage.Text = str1.ToString(); //Gruppo sanguigno * sacca = new Sacca(); * * sacca.uid = UidString; * sacca.gruppo = str1.ToString().Trim(); * await sacca.insertSacca(this); * //Scrive sul blocco firstBlock l'array di byte (l'array deve essere di 16 byte) * mifareTag.WriteBlock(firstBlock, new byte[] { 66, 0x00, 49, 0x00, 0x00, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }); * Toast.MakeText(this, "Write succesfully", ToastLength.Short).Show(); * * } */ } catch (TagLostException e) //Cattura l'eccezione nel caso in cui il tag viene allontanato dal dispositivo android { Toast.MakeText(this, e.Message, ToastLength.Short).Show(); } } }