Salve a tutti. Nel tentativo di creare un app che mi legga i codici a barre delle fustelle dei farmaci ho utilizzato zxinc come libreria, e seguendo qualche tutorial su android studio e usando per il debug il mio huawei p10 light sono riuscito a scriverla (quasi copiata). Poi mi sono reso conto che tutti i codici a barre li legge, mentre il bollino farmaceutico (code39) lo legge dando sei caratteri. Studiando in giro ho visto che segue la base 32 e ho fatto un piccolo programma che mi convertiva la base.
il nuovo codice ottenuto è il codice che si legge sul farmaco, solo che quando vado a richiamare la funzione Toast il programma non da il risultato e si chiude.
Codice:
char lettera;
double verocodice = 0;
for (int i = 0; i < result.getContents().length(); i++) {
lettera = result.getContents().charAt(i);
verocodice += (ConversioneLettereNumeri(lettera) * Math.pow((double) 32, (double) ((6 - i - 1))));
}
// TextView tv = (TextView) findViewById(R.id.risultato);
// tv.setText((int) verocodice);
Toast.makeText(this, (int) verocodice, Toast.LENGTH_LONG).show();
public int ConversioneLettereNumeri(char lettera) {
switch (lettera) {
case '0':
return (0);
case '1':
return (1);
case '2':
return (2);
case '3':
return (3);
case '4':
return (4);
case '5':
return (5);
case '6':
return (6);
case '7':
return (7);
case '8':
return (8);
case '9':
return (9);
case 'B':
return (10);
case 'C':
return (11);
case 'D':
return (12);
case 'F':
return (13);
case 'G':
return (14);
case 'H':
return (15);
case 'J':
return (16);
case 'K':
return (17);
case 'L':
return (18);
case 'M':
return (19);
case 'N':
return (20);
case 'P':
return (21);
case 'Q':
return (22);
case 'R':
return (23);
case 'S':
return (24);
case 'T':
return (25);
case 'U':
return (26);
case 'Vu':
return (27);
case 'W':
return (28);
case 'X':
return (29);
case 'Y':
return (30);
case 'Z':
return (31);
default:
return (0);
}
}
il nuovo codice ottenuto è il codice che si legge sul farmaco, solo che quando vado a richiamare la funzione Toast il programma non da il risultato e si chiude.
Ultima modifica di un moderatore: