Visualizzazione stampabile
-
lettore barcode
Ciao a tutti,
devo realizzare al fly un applicazione tipo la standrad lettore barcode. Il risultato deve essere che leggendo il codice a barre, mi apra in automaitoc un URL con alla fine il parametro letto.
Vorrei realizzarla io (per un discorso di customizzazione) anche se potrei usare quella già presente. Qaulcuno è in grado di darmi un dritta?Pezzi di codice?Ecc?
Grazie!
-
mai lavorato con i barcode su android, ma ho sentito parlare da più parti di questa libreria: zxing - Multi-format 1D/2D barcode image processing library with clients for Android, Java - Google Project Hosting Se può esserti utile
-
Grazie pourquoipas, adesso sto scaricando l SDK che pensavo di aver già installato, si evde che l ho tolta.
Poi vedo. Dovrebbe essere un componente base, il barcode. Magari scrivendo del codice, riesco a mettere la mia icona e togliere opzioni inutili. Programmi?
-
Sia programmazione che analisi, Java ma su application server, android è un passatempo per il poco tempo libero :)
-
pourquoipas sto leggendo una guida, ho già provato qualcosa con bottoni e textview ma vado avanti così e finisco tra trent anni.
Sto inziando a capire i passaggi dichiarazione degli "stili", importazione del widget, dichirazione oggetto e utilizzo nelle funzioni (? passaggio un po meno chiaro) ma le robette che ho fatto funzionano.
Ma per aprire la app direttamente sul barcode, analizzare il codice a barre, e inviarlo ad un url predefinito, mi è ancora sfuocato del tutto. Nà dritta? :)
-
Lui dice:
Per codificare una stringa in un codice QR semplicemente creare un Intent con l'azione Decode specificato, due extra stringa che specifica il tipo e dati e startActivity call ():
codice:
Intent intent = new Intent("com.google.zxing.client.android.ENCODE");
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra("ENCODE_TYPE", "TEXT_TYPE");
intent.putExtra("ENCODE_DATA","HELLO WORLD");
startActivity(intent)
Ma come faccio a "creare un Intent con l'azione Decode specificato" e le due extra stringhe?
-
Quote:
Originariamente inviato da
Ferri
Lui dice:
Per codificare una stringa in un codice QR semplicemente creare un Intent con l'azione Decode specificato, due extra stringa che specifica il tipo e dati e startActivity call ():
codice:
Intent intent = new Intent("com.google.zxing.client.android.ENCODE");
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra("ENCODE_TYPE", "TEXT_TYPE");
intent.putExtra("ENCODE_DATA","HELLO WORLD");
startActivity(intent)
Ma come faccio a "creare un Intent con l'azione Decode specificato" e le due extra stringhe?
Ciao,
or dunque - prima di cominciare - volevo chiederti se hai correttamente importato nel project (immagino tu usi eclipse) il file android-integrator.jar del barcode scanner zxing e -conseguentemente- incluso nel project le classi di adapter per la cattura del risultato:
IntentIntegrator.java
IntentResult.java
(scaricabili dalla cartella source del programma:
/trunk/android-integration/src/com/google/zxing/integration/android/ - zxing - Multi-format 1D/2D barcode image processing library with clients for Android, Java - Google Project Hosting
Premesso questo, veniamo a come eseguire la scansione e catturare il tipo di ean (magari per te superfluo) e il cod. ean stesso (forse questo ti interessa).
La classe IntentIntegrator.java possiede già il metodo per iniziare la scansione, si chiama .initiatescan.
Tutto quello che devi fare è creare una ulteriore classe che avvii IntentIntegrator.initiateScan() e che catturi il risultato della lettura (intesa come IntentResult), al termine della scansione, con il solito metodo onActivityResult().
Ti faccio un esempio in cui introduco (previe soddisfatte le pre-condizioni di progetto che ti ho indicato a inizio post) una classe di comodo per avviare la scansione e fare il get della lettura + il relativo layout .xml:
Classe AndroidScanner.java:
codice:
package mia.applicazione.test;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
public class AndroidScanner extends Activity {
TextView format=null;
TextView contents=null;
Bundle bundlescanner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.screen3);
format=(TextView)findViewById(R.id.format);
contents=(TextView)findViewById(R.id.contents);
Button confermaScansione = (Button) findViewById(R.id.pulsanteConfermaBarCode);
confermaScansione.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0){
Intent intent = new Intent();
intent.putExtra("formato", format.getText().toString());
intent.putExtra("codiceletto", contents.getText().toString());
setResult(RESULT_OK,intent);
finish();
}
});
}
public void doScan(View v) {
IntentIntegrator.initiateScan(this);
}
public void onActivityResult(int request, int result, Intent i) {
IntentResult scan=IntentIntegrator.parseActivityResult(request,result, i);
if (scan!=null) {
format.setText(scan.getFormatName());
contents.setText(scan.getContents());
}
}
@Override
public void onSaveInstanceState(Bundle state) {
state.putString("format", format.getText().toString());
state.putString("contents", contents.getText().toString());
}
@Override
public void onRestoreInstanceState(Bundle state) {
format.setText(state.getString("format"));
contents.setText(state.getString("contents"));
}
}
Layout utilizzato da AndroidScanner.java (l'ho chiamato screen3.xml):
codice:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Avvia Scansione!"
android:onClick="doScan"
/>
<TextView android:id="@+id/format"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<View
android:layout_width="fill_parent"
android:layout_height="2dip"
android:background="#FF0000FF"
/>
<TextView android:id="@+id/contents"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/pulsanteConfermaBarCode"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Conferma BarCode"
/>
</LinearLayout>
Noterai che ho utilizzato il metodo android per la gestione degli eventi click dei pulsanti, ovvero valorizzando la proprietà android:onClick
all'interno del file xml (in questo caso lancio il metodo 'doScan' della classe AndroidScanner.java, che non fa altro che lanciare il metodo
InitiateScan della classe IntentIntegrator.java di zxing).
Cosa avviene:
1) il richiamo del metodo doScan() avvia la scansione.
2) viene di fatto aperta l'applicazione zxing direttamente in modalita scansione.
3) alla scansione di un cod. ean valido, automaticamente ritorni alla tua applicazione e vengono passati indietro i dati relativi alla scansione,
(IntentIntegrator.parseActivityResult(request,resu lt, i);) in questo caso io ne prendo solo 2, perchè sono quelli più significativi, ovvero:
.getFormatName() (sarebbe la stringa che denota il tipo di ean rilevato, ad es. EAN 13, EAN 8, ecc...)
.getContents() (questo è il codice a barre, lo puoi memorizzare in una stringa e passarlo al tuo URL, nel mio caso lo visualizzo in un TextView).
E questo è quanto. Tralascio i commenti per il codice rimasto, poichè sarebbero superflui.
Spero che l'utilizzo dell'ottimo sw di zxing ora ti sia maggiormente chiaro e che questo post ti sia stato utile :)
A presto
-
purtroppo è un argomento di cui so poco, una ricerca veloce mi ha portato qua ScanningViaIntent - zxing - Simple scanning on Android, by calling Barcode Scanner via Intent - Multi-format 1D/2D barcode image processing library with clients for Android, Java - Google Project Hosting e qua Using ZXing to create an android barcode scanning app - Stack Overflow.
Leggendo le due cose mi par di capire che consiglino, come sistema più semplice di lettura barcodes, di usare il lettore ufficiale della libreria, e quindi di avviarlo tramite un intent. (Se guardi nel secondo link parlano anche di qualcos, (forse esempi o altro dovrei vedere) per gestire il fatto che questo barcode non sia intallato e reindirizzare l'utente sul market per scaricare l'app corretta.
Quello di cui parli tu, invece a sentimento sembra sia l'uso per fare l'esatto contrario, ovvero usare zxing per generare un codice QR ex novo (ecco perchè vuole le due stringhe extra, perchè devi dirgli come codificare il QR code e che dati ci devi scrivere).
Però già l'esempio di codice che riporti scatena un intent per ENCODE quindi mi aspetto che l'activity che risponde a quell'intent generi il barcode.
Per leggere prova a seguire i link che ti ho passato (io proverei a guardare il secondo, se non è troppo vecchio, non ho cercato di verificare se le info fossero relative a vecchie versioni)
-
Quote:
Originariamente inviato da
pourquoipas
purtroppo è un argomento di cui so poco, una ricerca veloce mi ha portato qua
ScanningViaIntent - zxing - Simple scanning on Android, by calling Barcode Scanner via Intent - Multi-format 1D/2D barcode image processing library with clients for Android, Java - Google Project Hosting e qua
Using ZXing to create an android barcode scanning app - Stack Overflow.
Leggendo le due cose mi par di capire che consiglino, come sistema più semplice di lettura barcodes, di usare il lettore ufficiale della libreria, e quindi di avviarlo tramite un intent. (Se guardi nel secondo link parlano anche di qualcos, (forse esempi o altro dovrei vedere) per gestire il fatto che questo barcode non sia intallato e reindirizzare l'utente sul market per scaricare l'app corretta.
Quello di cui parli tu, invece a sentimento sembra sia l'uso per fare l'esatto contrario, ovvero usare zxing per generare un codice QR ex novo (ecco perchè vuole le due stringhe extra, perchè devi dirgli come codificare il QR code e che dati ci devi scrivere).
Però già l'esempio di codice che riporti scatena un intent per ENCODE quindi mi aspetto che l'activity che risponde a quell'intent generi il barcode.
Per leggere prova a seguire i link che ti ho passato (io proverei a guardare il secondo, se non è troppo vecchio, non ho cercato di verificare se le info fossero relative a vecchie versioni)
doh! :) abbiamo risposto quasi contemporaneamente :D pardon, non volevo sovrappormi ^_^
-
frank17next molto esaustiva la risposta. Ti ringrazio.
C'è qualche punto in cui ho bisogno, non sapendo dove importare. Ad esempio, il file android-integrator.jar credo sia il contenente dei due:
IntentIntegrator.java
IntentResult.java
che non so in quale cartella del progetto importare. Prr il resto adesso adesso creo un nuovo progetto con uguali nome di pacchetto e nome progetto (nome in realtà è uguael :) ) e smanetto un po. A presto, prestissimo!! :)
-
Quote:
Originariamente inviato da
Ferri
frank17next molto esaustiva la risposta. Ti ringrazio.
C'è qualche punto in cui ho bisogno, non sapendo dove importare. Ad esempio, il file android-integrator.jar credo sia il contenente dei due:
IntentIntegrator.java
IntentResult.java
che non so in quale cartella del progetto importare. Prr il resto adesso adesso creo un nuovo progetto con uguali nome di pacchetto e nome progetto (nome in realtà è uguael :) ) e smanetto un po. A presto, prestissimo!! :)
Bene! :)
Per aggiungere un file .jar nel tuo progetto, devi accedere alla properties del project (click dx -> properties), selezionare 'java build path' e cliccare su 'add external jar'.
Le due classi di interfaccia le devi anche importare/copiare nel project.
In merito a dove reperire il jar, è sufficiente che cerchi su google: zxing scanner android-integration.jar download
-
Wooohoooo jar importato!
Le classi (file intero) le devo copiare in file che si chiamano IntentIntegrator.java e IntentResult.java?Creo i file nella src/mia.applicazione.test/ ?
Adesso cerco come implementare il layout con il tag screen che ti sei dimenticato di mettere..aiaiai!Ahahah scherzo :)
-
ahaha, come dimenticato? :D
il layout screen3.xml lo devi creare in layout, poi lo passo nella classe AndroidScanner.java con setContentView(R.layout.screen3)
In merito alle classi, si puoi anche creare due .java in src chiamandole allo stesso modo e incollando il codice sorgente
-
Ho incollato i sorgenti nei "fail" corrispettivi, e ho cambiato il package loro in package mia.applicazione.test;
No a riguardo dello screen, è l'unico errore che mi da nel main perchè "screen3" non è dichiarato nel layout. Giusto?
Sto cercando in internèt i vari tag ma nun troovo niente
-
Hai creato sotto layout il file screen3.xml ?
-
Annn :O
Adesso si :D L'errore rimane, il file screen3 è completamente vuoto. non devo inserire scrivere neinte?
-
EDITTT
Adesso ho capito, non avevo letto bene il tuo primo post. Sto lanciando e vedo come funziona il vapore, poi ti dico :)
-
eheheheh... devi incollarci il codice xml che ti ho postato! :D
Edit: Ok :)
-
Allora, credo che vada in errore da emulatore, perchè non ha una fotocamera :) L ho provata a mettere su cell, copiando l epk che trovo in bin direttamente nella root. Poi con ES Gestore provo ad aprire ma mi da "errore in apertura pacchetto"
-
Quote:
Originariamente inviato da
Ferri
Allora, credo che vada in errore da emulatore, perchè non ha una fotocamera :) L ho provata a mettere su cell, copiando l epk che trovo in bin direttamente nella root. Poi con ES Gestore provo ad aprire ma mi da "errore in apertura pacchetto"
Abilita il debug usb sul cell e premi il tasto 'play' su eclipse. dopo leggi eventuali errori dalla console logcat e postali :)
-
[2012-06-20 11:28:37 - AndroidScanner] ERROR: Application requires API version 10. Device API version is 8 (Android 2.2.2).
su cell ho la 2.2.2, invce ho creato il ppject per la 2.3, sono un cornuto. Duplico project, settandolo per la 2.2 :)
(Cmq c è in cantinere un revirgin dell'acer liquid metal, appena eseguro butto su la stock 2.3)
-
Ho duplicato, ma mi da errore su questi import:
import com.google.zxing.integration.android.IntentIntegra tor;
import com.google.zxing.integration.android.IntentResult;
:-X
-
-
Su cell all'apertura mi da errore di interruzione e chiude tutto :(
-
Quote:
Originariamente inviato da
Ferri
Su cell all'apertura mi da errore di interruzione e chiude tutto :(
mmm... sicuro che non si tratta di banalità? (activity non dichiarate, ecc...). il crash a che errore corrisponde nel logcat?
(please, incollalo utilizzando i tag CODE /CODE tra parentesi quadre)
-
codice:
06-20 11:56:16.596: W/dalvikvm(22251): VFY: unable to resolve static method 26: Lcom/google/zxing/integration/android/IntentIntegrator;.initiateScan (Landroid/app/Activity;)Landroid/app/AlertDialog;
06-20 11:56:16.596: W/dalvikvm(22251): VFY: unable to resolve static method 27: Lcom/google/zxing/integration/android/IntentIntegrator;.parseActivityResult (IILandroid/content/Intent;)Lcom/google/zxing/integration/android/IntentResult;
06-20 11:56:16.616: W/dalvikvm(22251): threadid=1: thread exiting with uncaught exception (group=0x2aac87d8)
06-20 11:56:16.616: E/AndroidRuntime(22251): FATAL EXCEPTION: main
06-20 11:56:16.616: E/AndroidRuntime(22251): java.lang.RuntimeException: Unable to start activity ComponentInfo{scanner.ean.android/scanner.ean.android.Scanner_eanActivity}: java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_width attribute.
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.os.Handler.dispatchMessage(Handler.java:99)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.os.Looper.loop(Looper.java:123)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.app.ActivityThread.main(ActivityThread.java:4627)
06-20 11:56:16.616: E/AndroidRuntime(22251): at java.lang.reflect.Method.invokeNative(Native Method)
06-20 11:56:16.616: E/AndroidRuntime(22251): at java.lang.reflect.Method.invoke(Method.java:521)
06-20 11:56:16.616: E/AndroidRuntime(22251): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
06-20 11:56:16.616: E/AndroidRuntime(22251): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
06-20 11:56:16.616: E/AndroidRuntime(22251): at dalvik.system.NativeStart.main(Native Method)
06-20 11:56:16.616: E/AndroidRuntime(22251): Caused by: java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_width attribute.
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:491)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:3735)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:3815)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.widget.FrameLayout$LayoutParams.<init>(FrameLayout.java:452)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:418)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:48)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.view.LayoutInflater.inflate(LayoutInflater.java:395)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
06-20 11:56:16.616: E/AndroidRuntime(22251): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.app.Activity.setContentView(Activity.java:2214)
06-20 11:56:16.616: E/AndroidRuntime(22251): at scanner.ean.android.Scanner_eanActivity.onCreate(Scanner_eanActivity.java:19)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-20 11:56:16.616: E/AndroidRuntime(22251): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
06-20 11:56:16.616: E/AndroidRuntime(22251): ... 11 more
-
credo che gli "11 more" siano:
codice:
06-20 11:56:16.616: W/ActivityManager(1529): Force finishing activity scanner.ean.android/.Scanner_eanActivity
06-20 11:56:16.666: I/ggheart(2494): onStop
06-20 11:56:17.125: W/ActivityManager(1529): Activity pause timeout for HistoryRecord{3134f720 scanner.ean.android/.Scanner_eanActivity}
06-20 11:56:17.126: I/DemoService(2494): DiyScheduer.onStart
06-20 11:56:17.126: I/ggheart(2494): onStart
06-20 11:56:18.606: W/InputManagerService(1529): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@31238290
06-20 11:56:18.616: I/ActivityManager(1529): Process scanner.ean.android (pid 22251) has died.
06-20 11:56:20.232: I/wpa_supplicant(6781): CTRL-EVENT-SCAN-RESULTS
06-20 11:56:20.232: I/wpa_supplicant(6781): WPS-AP-AVAILABLE
06-20 11:56:20.232: V/WifiMonitor(1529): Event [WPS-AP-AVAILABLE ]
06-20 11:56:25.636: I/wpa_supplicant(6781): CTRL-EVENT-SCAN-RESULTS
06-20 11:56:25.636: I/wpa_supplicant(6781): WPS-AP-AVAILABLE
06-20 11:56:25.636: V/WifiMonitor(1529): Event [WPS-AP-AVAILABLE ]
06-20 11:56:27.237: W/ActivityManager(1529): Activity destroy timeout for HistoryRecord{3134f720 scanner.ean.android/.Scanner_eanActivity}
06-20 11:56:31.043: I/wpa_supplicant(6781): CTRL-EVENT-SCAN-RESULTS
06-20 11:56:31.043: I/wpa_supplicant(6781): WPS-AP-AVAILABLE
06-20 11:56:31.043: V/WifiMonitor(1529): Event [WPS-AP-AVAILABLE ]
06-20 11:56:36.447: I/wpa_supplicant(6781): CTRL-EVENT-SCAN-RESULTS
06-20 11:56:36.447: I/wpa_supplicant(6781): WPS-AP-AVAILABLE
06-20 11:56:36.447: V/WifiMonitor(1529): Event [WPS-AP-AVAILABLE ]
06-20 11:56:41.855: I/wpa_supplicant(6781): CTRL-EVENT-SCAN-RESULTS
06-20 11:56:41.855: I/wpa_supplicant(6781): WPS-AP-AVAILABLE
06-20 11:56:41.856: V/WifiMonitor(1529): Event [WPS-AP-AVAILABLE ]
06-20 11:56:47.257: I/wpa_supplicant(6781): CTRL-EVENT-SCAN-RESULTS
06-20 11:56:47.257: I/wpa_supplicant(6781): WPS-AP-AVAILABLE
06-20 11:56:47.257: V/WifiMonitor(1529): Event [WPS-AP-AVAILABLE ]
06-20 11:56:49.886: E/Tethering(1529): attempting to remove unknown iface (usb0), ignoring
06-20 11:56:49.886: D/WifiService(1529): ACTION_BATTERY_CHANGED pluggedType: 2
06-20 11:56:49.886: D/WifiService(1529): [updateWifiWakelock] Wifi(On), Connection(no AP), Sleep Policy(0), Idle(not idle) Reason:MESSAGE_START_WIFI
06-20 11:56:49.886: D/WifiService(1529): [updateWifiWakelock] Lock
06-20 11:56:49.986: D/setcpu(22187): Normal Profile 768000, 384000, ondemand
06-20 11:56:52.661: I/wpa_supplicant(6781): CTRL-EVENT-SCAN-RESULTS
06-20 11:56:52.661: I/wpa_supplicant(6781): WPS-AP-AVAILABLE
06-20 11:56:52.666: V/WifiMonitor(1529): Event [WPS-AP-AVAILABLE ]
06-20 11:56:58.071: I/wpa_supplicant(6781): CTRL-EVENT-SCAN-RESULTS
06-20 11:56:58.071: I/wpa_supplicant(6781): WPS-AP-AVAILABLE
06-20 11:56:58.071: V/WifiMonitor(1529): Event [WPS-AP-AVAILABLE ]
06-20 11:57:00.026: D/DigitalAppWidgetBroadcastReceiver(17797): onReceive
06-20 11:57:00.026: D/DigitalAppWidgetConfigureActivity(17797): loadTimezonePref Id =6,timezone =default
06-20 11:57:00.036: D/DigitalAppWidgetConfigureActivity(17797): loadCityPref Id =6,City =Fuso orario sistema
06-20 11:57:03.477: I/wpa_supplicant(6781): CTRL-EVENT-SCAN-RESULTS
06-20 11:57:03.477: I/wpa_supplicant(6781): WPS-AP-AVAILABLE
06-20 11:57:03.477: V/WifiMonitor(1529): Event [WPS-AP-AVAILABLE ]
06-20 11:57:08.896: I/wpa_supplicant(6781): CTRL-EVENT-SCAN-RESULTS
06-20 11:57:08.896: I/wpa_supplicant(6781): WPS-AP-AVAILABLE
06-20 11:57:08.896: V/WifiMonitor(1529): Event [WPS-AP-AVAILABLE ]
06-20 11:57:14.296: I/wpa_supplicant(6781): CTRL-EVENT-SCAN-RESULTS
06-20 11:57:14.296: I/wpa_supplicant(6781): WPS-AP-AVAILABLE
06-20 11:57:14.296: V/WifiMonitor(1529): Event [WPS-AP-AVAILABLE ]
06-20 11:57:18.596: D/KeyguardViewMediator(1529): onScreenTurnedOff(3)
06-20 11:57:18.596: D/KeyguardViewMediator(1529): setting alarm to turn off keyguard, seq = 329
06-20 11:57:18.596: E/Sensors(1529): sensors_control_activate active=00000002 sensor=00000002 new_sensors=0 changed=2
06-20 11:57:18.606: E/Sensors(1529): exit
-
Quote:
Originariamente inviato da
frank17next
doh! :) abbiamo risposto quasi contemporaneamente :D pardon, non volevo sovrappormi ^_^
Nessun problema, a quanto vedo oltretutto conosci l'argomento meglio di me quindi sarai certamente più utile a Ferri ed a quanti un domani rileggeranno per problemi simili.
-
mmm...
non so, dovrei visionare l'intero progetto che hai creato.
Riesci a zipparlo e inserirlo come allegato?
Thank u
-
1 allegato(i)
Allegato 14542
Lo vedi?
In lista ho anche: aggiungere icona personalizzata e uno spazio per immagine rettangolare (in orizzontale) all'interno della app.
Cerco come fare poi facciamo il punto? :)
grazie mille!!!!!
-
Ok! provo a visionarlo in giornata!!! :) grazie
-
Sei in ritardo, ho già trovato come fare l'icona! rotfl
AHAHAHAHAHHAHAHAHAH
Adesso vado di fotosciòp ;)
-
Quote:
Originariamente inviato da
Ferri
Sei in ritardo, ho già trovato come fare l'icona! rotfl
AHAHAHAHAHHAHAHAHAH
Adesso vado di fotosciòp ;)
Eheheh.. visto che ti ci trovi, disegna qualche bella icona anche per me :D
Tornando a noi,
l'app non poteva funzionare per 2 ragioni:
1) il file .jar inserito nel progetto era corrotto (forse il download si è troncato prima del termine del file). Ho rimosso il .jar corrotto e aggiunto quello in mio possesso scaricato al tempo).
L'errore di apertura file era anche indicata nella console 'Problems' di eclipse ;)
2) Rileggendo la lettera di rilascio del .jar, vi è una nota che dice che il file va collocato nel progetto sotto il percorso /libs (folder da creare perchè di default non viene creata con il progetto).
In merito a questo - vale anche per eventuali altri .jar futuri da usare - è conveniente 'trascinare' il file jar all'interno del percorso / del progetto (o /libs in questo caso). Dopodichè, dalle properties del progetto -> Java build path, esegui l'ADD Jar anzichè 'add external jar'. In ogni caso va consultata la documentazione per individuare l'utilizzo corretto del .jar.
Adesso l'app è perfettamente funzionante, la puoi scaricare qui
Nell'eseguire l'import del progetto in eclipse, ricorda, prima di compilare e pubblicare con il tasto play, di eseguire click destro sulla folder principale del progetto (post-importazione) e lancia Android tools-> Fix Project Properties (questo perchè sicuramente non abbiamo lo stesso ambiente e potresti avere delle incongruenze nel progetto importato).
Testato su Galaxy Note 2.3.3 e Nexus s 4.0.4
-
Testato, infatti funziona! :) Grazie mille super gentile, mandami in mp il tuo contatto email che ti giro l icona per la mia e mi dici se lo stile può andare. Ovviamente se è per uno scanner barcode :)
Non capisco però cosa te ne fai del codice a barre dopo la conferma. Mi si chiude l app. Io dovrei far in modo che il codice letto, mi venga spedito ad un url. La connessione sarà in WIFI.
Cioè io sparo e mi collego ad una pagina internet con quel'url. La pagina la gestisco in asp con stili appositi per mobile.
-
Ho inserito nel manifest:
<uses-feature android:name="android.hardware.wifi" />
-
Forse questo pezzo può aiutarmi:
codice:
super.onCreate(savedInstanceState);
WebView webview = new WebView(this);
setContentView(webview);
String url = getIntent().getStringExtra("url");
setTitle(url);
webview.loadUrl(url);
Ho provato a dichiarare una webview negli stili con id pagina, e a scrivere:
codice:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.screen3);
format=(TextView)findViewById(R.id.format);
contents=(TextView)findViewById(R.id.contents);.
pagina=(WebView)findViewById(R.id.pagina);
Button confermaScansione = (Button) findViewById(R.id.pulsanteConfermaBarCode);
confermaScansione.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0){
Intent intent = new Intent();
intent.putExtra("formato", format.getText().toString());
intent.putExtra("codiceletto", contents.getText().toString());
setResult(RESULT_OK,intent);
String url = getIntent().getStringExtra("http://www.google.it");
setTitle(url);
webview.loadUrl(url);
finish();
}
});
}
ma niente...non risolve pagina e poi non credo che ci volgia un ID per aprire una pagina web. Non sono sicuro dello svolgimento.
-
Non facevo l'import:
codice:
import android.webkit.WebView;
Adesso l'ho fatto ed ho inserito:
codice:
public class MyWebView extends Activity {
WebView mWebView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebView = new WebView(this);
mWebView.getSettings().setJavaScriptEnabled(true);
setContentView(mWebView);
mWebView.loadUrl("http://www.google.it");
}
}
Sento già l ira funesta degli dei che si sta per scaterare sulla terra!
Come faccio a lanciare questa procedura sull click del tuo tastino? :)
-
Quote:
Originariamente inviato da
Ferri
Testato, infatti funziona! :) Grazie mille super gentile, mandami in mp il tuo contatto email che ti giro l icona per la mia e mi dici se lo stile può andare. Ovviamente se è per uno scanner barcode :)
Non capisco però cosa te ne fai del codice a barre dopo la conferma. Mi si chiude l app. Io dovrei far in modo che il codice letto, mi venga spedito ad un url. La connessione sarà in WIFI.
Cioè io sparo e mi collego ad una pagina internet con quel'url. La pagina la gestisco in asp con stili appositi per mobile.
ehehe, bene. No, confermaBarCode finisce in uno stub che non fa nulla. esce soltanto :)
-
Dove hai messo il finish?
Di tutto il mio scervellamento mi rispondi in una riga? :O
ajajajajajaj
-
Quote:
Originariamente inviato da
Ferri
Non facevo l'import:
codice:
import android.webkit.WebView;
Adesso l'ho fatto ed ho inserito:
codice:
public class MyWebView extends Activity {
WebView mWebView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebView = new WebView(this);
mWebView.getSettings().setJavaScriptEnabled(true);
setContentView(mWebView);
mWebView.loadUrl("http://www.google.it");
}
}
Sento già l
ira funesta degli dei che si sta per scaterare sulla terra!
Come faccio a lanciare questa procedura sull click del tuo tastino? :)
Eseguendo soltanto il codice più annidato tra parentesi quadre all'interno del metodo .setOnClickListener() del pulsante :)