Autore Topic: Integrare QR reader[risolto] --> scanResult e soluzione randomica  (Letto 532 volte)

Offline StigHelmer

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
0
Buonasera a tutti complimenti per il forum e per la bella comunità che accoglie. Sono un nuovo utente e anche neofita della programmazione Android quindi se commetterò errori o dirò eresie vi prego siate clementi  :-)

Vengo subito al nocciolo della questione:

Dovrei tramite la pressione di un bottone poter lanciare una Activity che mi permetta di scansionare dei codici QR "noti" ognuno dei quali mia dia un risultato randomico tra quelli abinati al Qr stesso.

esempio: il QR1 mi dovrebbe dare una soluzione casuale tra ad esempio 1,2,3.
                  QR2 ---> 4,5,6.
                  QR3 ---> 7,8,9. etc...

Il problema principale è che non riesco proprio ad integrare nel mio progetto (che comunque si compone anche di altre semplici activity) un QR Codes. Ho letto molto a riguardo e sono arrivato alla conclusione che il metodo più semplice e più usato per farlo è utilizzare le librerie ZXing.

Qualcuno che potrebbe illuminarmi su come poter integrare il lettore?

grazie a tutti

Post unito: 27 Aprile 2013, 20:23:00 CEST
Ragazzi sono riuscito ad integrare perfettamente il lettore QR grazie allo splendido tutorial di MarcoDuff..

Ora dovrei riuscire ad abinare allo scanResult, per determinate parole (stringhe, valori?), un risultato numerico casuale in un determinato intervallo (ad esempio 1-10).
Come posso fare per risolvere?

io pensavo ad una cosa simile:
Codice (Java): [Seleziona]
int min = 1;
int max = 10;

Random r = new Random();
int i1 = r.nextInt(max - min + 1) + min;

Potrebbe funzionare? come lo lego allo scanResult?

Scusate le domande forse banali e grazie

Post unito: 29 Aprile 2013, 15:08:11 CEST
Allora, andiamo per ordine. Per farvi capire meglio la situazione inizio con l'allegare il mio codice java:

Codice (Java): [Seleziona]
public class ScanQR extends Activity {
       
        Button  buttonhome;
        Activity HomeQR;
         
       
        public static final Intent SCAN_INTENT = new Intent("com.google.zxing.client.android.SCAN");
       
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.scan_layout);
       
buttonhome = (Button) findViewById (R.id.buttonhome);


                buttonhome.setOnClickListener(new OnClickListener(){
                        @Override
                        public void onClick(View argo0){
                                Intent openHomeQR = new Intent(ScanQR.this, HomeQR.class);
                startActivity(openHomeQR);}});
               
                final Intent SCAN_INTENT = new Intent("com.google.zxing.client.android.SCAN");
       
        PackageManager packageManager = this.getPackageManager();
        ResolveInfo resolveInfo = packageManager.resolveActivity(SCAN_INTENT, PackageManager.GET_RESOLVED_FILTER);
        if(resolveInfo==null) {
                ((Button)this.findViewById(R.id.scanButton)).setEnabled(false);
                ((TextView)this.findViewById(R.id.scaricapp)).setText(String.format("ATTENZIONE Per giocare a QRGAME è necessario installare un lettore QR Codes. Scaricalo da qua gratuitamente: https://play.google.com/store/apps/details?id=com.google.zxing.client.android"));
        }
    }

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                super.onActivityResult(requestCode, resultCode, data);
                if (resultCode == Activity.RESULT_OK && requestCode == 0) {
                        String scanResult = data.getStringExtra("SCAN_RESULT");
                        ((TextView)this.findViewById(R.id.scanResult)).setText(String.format(scanResult));
                       
               
                }
                else {((TextView)this.findViewById(R.id.scanResult)).setText("Il giocatore ha interrotto la scansione della tessera");
                }
        }
   
    public void onScan(View view) {
        startActivityForResult(SCAN_INTENT, 0);
       
       
    }
}

Questo è il codice della mia Activity.. come prima cosa mi piacerebbe riuscire a mostrare il risultato della scansione (scanResult), in un AlertDialog invece che nel layout (tramite il TextView) e soprattutto riuscire a portare questo famigerato scanResult, su un'altra activity..

Secondo voi è possibile?
grazie per l'eventuale aiuto
« Ultima modifica: 29 Aprile 2013, 15:08:11 CEST da StigHelmer, Reason: Merged DoublePost »