コード例 #1
0
 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();
         }
     }
 }
コード例 #2
0
        // 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();
                }
            }
        }