wizarPOS 2D Smart POS 
Pambuka
tujuane
Dokumen iki nerangake instruksi nggunakake Layanan Pindai WizarPOS, kalebu deskripsi antarmuka, deskripsi parameter, lan cara nelpon layanan kasebut.
panganggo
Sing maca dokumen iki yaiku pangembang sing nggunakake Layanan Pindai WizarPOS.
Latar mburi Proyek
Swaraview
POS pinter WizarPOS saiki nggunakake sistem Android sing ditingkatake lan disesuaikan minangka OS, lan kanggo fungsi pindai, sistem Android ora dilengkapi fungsi scan barcode/2D barcode, nanging nggunakake layanan open source, kayata Zxing/Zbar . Akeh Aplikasi Android sing digunakake ing piranti POS pinter wis nyadari fungsi pindai sing cepet banget.
Nanging, ana akeh aplikasi liyane sing dikembangake adhedhasar POS cerdas, dudu aplikasi komersial sing wis siap. Lan akeh pangembang POS sing pinter uga duwe latar mburi industri POS, dudu pangembang Android profesional. Dadi nalika miwiti ngembangake aplikasi, dheweke pengin diwenehi API pindai sing trep dening WizarPOS, tinimbang sinau Zxing / Zbar dhewe.
Saka titik hardware saka view, bagean pindai sing digunakake ing POS pinter, ora kudu kamera standar, bakal ana sawetara transformasi. Ing sawetara kasus, bagean pindai kudu dadi hardware khusus. Mulane, nggunakake langsung Zxing / Zbar ora bener ditrapake kanggo WizarPOS pinter POS, nanging mbutuhake sawetara modifikasi lan pangaturan dhewe.
Kanggo alasan ing ndhuwur, kita nimbang ngembangake Layanan Pindai WizarPOS kanggo nggampangake pangembang pihak katelu ngembangake aplikasi kanthi fungsi pindai.
Panggunaan Layanan Scan
Layanan pindai minangka aplikasi lan diwiwiti kanthi nggunakake AIDL. Aplikasi pihak katelu nggawe UI kanthi transfer sawetara paramèter.
Katrangan antarmuka lan paramèter
- Katrangan antarmuka
ScanBarcode
Antarmuka iki minangka antarmuka panggilan sinkron.
Nalika aplikasi nelpon antarmuka, layanan pindai mbukak kamera kaya sing ditetepake dening parameter pindai lan miwiti pindai. Sawise pindai, kamera dipateni lan asile langsung bali
ScanResult scanBarcode(ScanParameter parameter); - Parameter:
ScanParameter - bali:
Hasil Scan - diwiwiti
Antarmuka iki minangka antarmuka panggilan sing ora sinkron, sing nuduhake scan terus diwiwiti. Nalika aplikasi nelpon antarmuka iki, layanan pindai mbukak kamera kaya sing ditetepake dening parameter pindai lan miwiti pindai. Sawise saben scan, asil bakal bali sak callback. Sawise saben callback rampung, proses scan sabanjure diwiwiti. void startScan(parameter ScanParameter, IScanCallBack callBack); Parameter: ScanParameter, IScanCallBack - bali:
FoundBarcode ing IScanCallBack
Nalika nelpon startScan (), parameter IScanCallBack kudu dipun ginakaken. Panelpon bisa njaluk ScanResult liwat antarmuka iki. Nalika antarmuka iki disebut, layanan scan ing negara ngaso, lan sawise telpon bali, tumindak scan sabanjuré bakal diterusake. Sampeyan bisa mateni layanan pindai sing lagi ngaso kanthi "stop scan".
void ketemu barcode(ScanResult asil); - Parameter:
Hasil Scan - StopScan
Mungkasi scan terus, lan mateni UI layanan scan. Sawise mandheg, panelpon liyane bisa nelpon startScan, utawa antarmuka scanBarcode. - bali: getScanType(int index)
Entuk jinis scanner. - String getScanType(int index); Parameter:
Int 0 utawa 1; - bali:
String "Scanner" utawa "Kamera" utawa "Error"; - Katrangan Parameter
ScanParameter
ScanParameter minangka obyek parameter, nemtokake paramèter sing dibutuhake dening layanan scanner.
metode: set(String key, String value) (Value Not case sensitive)
Kunci | Nilai
Jinis |
Nilai | Katrangan | ||||
jendhela_ndhuwur | int | Default: 0,
Range: > 0 |
Jarak menyang ndhuwur layar. Efek ing mode overlay.
(dp) |
||||
jendhela_kiwa | int | Default: 0,
Range: > 0 |
Jarak menyang layar kiwa. Efek ing mode overlay.
(dp) |
||||
jendhela_jembaré | int | Default: ambane layar
Range: > 0 |
Mode layar.
(dp) |
jembaré. | Efek | in | overlay |
dhuwur_jendela | int | Default: dhuwur layar
Range: > 0 |
Dhuwur layar. Efek ing mode overlay.
(dp) |
||||
enable_scan_section n | boolean | Default: bener Range: bener / salah | palsu: kabeh jendhela tampilan iku wilayah kanggo scanner, mbusak pigura scanner.
bener: ngatur area scanner, duwe pigura scanner, sisih liyane semitransparent, pigura scanner ing tengah, bisa nyetel jembaré utawa dhuwur saka pigura scanner. |
||||
scan_section_width | int | Default: 300 dip
Range: > 0 |
Jembaré pigura scanner. | ||||
scan_section_height
t |
int | Default: 300 dip
Range: > 0 |
Dhuwur pigura scanner. | ||||
tampilan_scan_line | String | Default: obah Range: Ora / tetep / obah | Tampilake garis abang ing area scanner.
NO: Ora ditampilake Telpon: Ing tengah Obah: Obah munggah lan mudhun |
||||
enable_flash_icon | boolean | W1 上
Default: bener Q1 上 Default: salah |
Apa arep nampilake tombol hover kanggo ngontrol lampu kilat. | ||||
Range: bener / salah | |||||||
enable_switch_icon | boolean | Default: bener
Range: bener / salah |
Apa kanggo nampilake hover
tombol ngoper kamera. |
||||
enable_indicator_lig | boolean | Default: palsu | Apa kanggo nampilake indikator |
ht | Range: bener / salah | buton cahya, mung didhukung ing Q1. | |||||
decodeformat | String | Default: BARCODE_ALL | Rentang format decode. Default yaiku BARCODE_ALL, format dipisahake karo ",". | ||||
decoder_mode | int | Default: 2 Range: 0/1/2 | Mode decode: 0: mode1
1: mode2 2: mode3 |
||||
enable_return_imag
e |
boolean | Default: palsu
Range: bener / salah |
apa
gambar. |
kanggo | bali | ing | dipindai |
kamera_index | int | Default: 0 Range: 0/1/2 | 0: scanner utama (kamera tetep).
1: scanner kapindho (kamera zoom). 2: kamera tampilan pelanggan. |
||||
scan_time_out | dawa (ms) | Default: -1
Range: > 0 |
<=0:scan selawase
> 0: pindai nganggo wektu entek, nalika entek, bali kesalahan wektu entek, mung ditrapake ing antarmuka sing diselarasake. |
||||
scan_section_bord
er_warna |
int | Default:
Warna.PUTIH |
Werna wates scan, gunakake
Warna.argb |
||||
scan_section_corne r_color | int | Default: Color.argb(0xFF, 0x21, 0xDB,
0xD5) |
Werna sudhut scan | ||||
scan_section_line_
werna |
int | Default:
Warna.RED |
Werna garis scan | ||||
scan_tip_text | String | Default: pindai otomatis nalika njupuk pindai
gambar |
Teks tip ing ngisor wates pindai | ||||
scan_tip_textSize | int | Default: 15 | Ukuran teks tip
Unit: sp |
||||
scan_tip_textWarna | int | Default:
Warna.PUTIH |
Werna teks tip | ||||
scan_tip_textMargi n | int | Default: 30 | Jarak antarane teks tip lan sisih ngisor layar
Unit: dp |
||||
flash_light_state | boolean | Default: palsu | Kahanan wiwitan lampu kilat bener: dibukak
palsu: ditutup |
||||
status_lampu_indikator | boolean | Default: palsu | Kondisi wiwitan lampu indikator bener: dibukak
palsu: ditutup |
scan_mode | String | Default: dialog | Mode jendhela Scanner
dialog: aktivitas kanthi overlay UI sing ditemtokake: mung duwe jendhela pemindai, tanpa judhul UI, tombol UI, jendhela pemindai ing ndhuwur aktivitas UI liyane |
scan_camera_expo manawa | int | Default: 0 | Kompensasi cahya kamera kanggo kamera zoom |
scan_time_limit | int | Default: 50 | Wektu decode maksimal |
enable_mirror_scan | boolean | Default: bener | Aktifake mirror scan
Default bener, dibukak |
enable_hands_free | boolean | Default: bener | Aktifake handsfree bakal miwiti ndeteksi gerakan lan katerangan gerakan. Umume, nalika scan terus-terusan kudu ngaktifake.
Mung kanggo scanner Zebra. |
enable_ui_by_zebr a | boolean | Default: bener | bener: tampilan UI, palsu: ndhelikake UI. Yen ndhelikake UI, kacepetan wiwitan scanner bakal luwih cepet.
Mung kanggo scanner Zebra. |
enable_mobile_pho ne_screen_mode | boolean | Default: salah | bener: nambah kinerja maca kode bar ing telpon seluler lan tampilan elektronik, nanging bisa nambah decode
wektu. Dadi yen ora perlu mindhai kode saka telpon, mangga nyetel iku palsu. Mung kanggo scanner Zebra. |
enable_upca_count ry | boolean | Default: bener | bener: sawise UPC_A dekoding, nuduhake kode negara ing Panggonan pisanan; palsu: sawise UPC_A dekoding, ndhelikake kode negara ing Panggonan pisanan.
Mung kanggo scanner Zebra. |
enable_decoding_ill umination | boolean | Default: bener | Ngaktifake katerangan biasane ngasilake gambar sing unggul. Efektivitas katerangan suda minangka
jarak menyang target mundhak. bener: Aktifake Dekoding Iluminasi, decoder nguripake katerangan saben gambar dijupuk kanggo pitulungan |
dekoding.
palsu: Pateni Dekoding Iluminasi, decoder ora nggunakake dekoding katerangan. Mung kanggo scanner Zebra. |
|||
enable_motion_illu mination | boolean | Default: salah | bener: nguripake katerangan gerakan ing hands-free lan mode pemicu otomatis.
palsu: mateni katerangan gerakan. Parameter iki mung ditrapake kanggo mode hands-free. Mung kanggo scanner Zebra. |
Mode scanner
Ing mode dialog, UI scanner wis digambar dening layanan scanner kamera, app katelu ora perlu nimbang babagan UI.
Ing mode overlay, layanan scanner kamera mung nyedhiyakake jendhela scanner, jendhela bakal ditampilake ing ndhuwur UI app katelu. Dadi app katelu bisa nggambar UI dhewe, kayata judhul, tombol. Ing mode iki, yen app kudu ngoper kamera, lampu kilat, lampu indikator, kudu nggunakake siaran kaya ing ngisor iki:
kamera:
Aksi Siaran : com.wizarpos.scanner.setcamera
Broadcast Key: overlay_config
Nilai: 0 Kamera tetep;1 kamera zoom; 2 kamera tampilan pelanggan
Lampu kilat:
Siaran Tindakan : com.wizarpos.scanner.setflashlight
Broadcast Key: overlay_config
Nilai: bener dibukak; palsu ditutup
Lampu indikator:
Siaran Tindakan : com.wizarpos.scanner.setindikator
Broadcast Key: overlay_config
Nilai: bener dibukak; palsu ditutup
Sample Kode: // mbukak lampu kilat
Intent intent=new Intent();
intent.setAction(ScanParameter.BROADCAST_SET_FLASHLIGHT);
intent.putExtra(ScanParameter.BROADCAST_VALUE, sendBroadcast(maksud);
Zebra Scanner
Scan Zebra mbutuhake kahanan ing ngisor iki:
- Pencitra Zebra sing ana.
- Setel parameter "camera_index" menyang 0- pemindai utama.
- Nalika layar ireng, imager ora bisa digunakake.
- Setel parameter "enable_ui_by_zebra" kanggo false- ndhelikake UI standar saka sistem.
Hasil Scan
lapangan | Jinis | Katrangan |
kode asil | Int | >=0: Sukses
<0: Gagal Deleng uga Kode Kesalahan |
teks | String | Asil teks, bali null nalika ana kesalahan, format teks UTF-8, yen perlu format liyane, njaluk buffer mentah
lan ngganti dhewe. |
mentahBuffer | Byte [] | Penyangga mentah |
bitmap | Bitmap | Gambar sing dipindai, bakal bali nalika nyetel parameter enable_return_image yaiku
bener. |
barcodeFormat | String | barcodeFormat, ndeleng
Lampiran |
Kode kesalahan
Nilai | Katrangan |
1 | Sukses |
0 | Batal |
2 | UI pindai ditampilake kanthi lengkap |
-1 | Layanan wis dikuwasani |
-2 | Ora bisa mbukak kamera |
-3 | Pindai wektu entek |
-4 | Parameter ilegal |
Panganggone
Integrasi layanan scanner
Layanan pemindai nggunakake AIDL, mula aplikasi pihak katelu kudu kalebu AIDL files ( njaluk saka \ sumber \ aidl saka paket SDK barcode) sing diwenehake dening WizarPOS. Ing ngisor iki diterangake cara nggabungake ing Eclipse lan Android Studio.
Ing files kalebu:
Ing Eclipse, sijine kabeh files menyang paket: com. clouds.scan server. ngandika.
Ing Android Studio, pisanan sijine AIDL files ing paket (com. cloud pos. scan server.aidl), paket kasebut ana ing folder (src—main—aildl), yen paket lan folder durung ana, mangga gawe dhisik.
Banjur, sijine paket (com. cloud pos.scan server.and), loro java files ing folder (src—main–java), yen paket lan folder ora ana, mangga gawe dhisik.
proyek resik, yen dikompilasi sukses ing folder: mbangun-generate-sumber-aidl-debug, banjur app bisa nelpon layanan scanner kasil.
Layanan ikatan
Kita wis nyedhiyakake API kanggo layanan ikatan. Sijine antarmuka lan implementasine ing paket apa wae. Entuk saka \source\aidlControl saka paket SDK barcode.
- Gunakake cara ing ngisor iki kanggo ngiket layanan:
AidlController.getInstance().startScanService(iki, iki); - Ngleksanakake antarmuka IAIDLListener. Entuk layanan pemindai, gunakake layanan kasebut kanggo nelpon fungsi kasebut.
Gunakake fungsi iki kanggo mbebasake layanan.
Deleng uga proyek demo kanggo rincian.
Lampiran
Format Barcode
Example:
Dokumen / Sumber Daya
![]() |
wizarPOS 2D Smart POS [pdf] Pandhuan 2D Smart POS, 2D, Smart POS |