1. Pendahuluan
Sunmi L2, P2Lite, dan perangkat khusus pemindaian kode lainnya dapat digunakan untuk berbagai keperluan komersial seperti supermarket, industri, medis, pertanian, perdagangan, penegakan hukum, dll. L2 memiliki dua jenis spesifikasi pemindaian:
- NewLand: Dukungan kode lihat Jadwal 1.
- Zebra: Dukungan kode lihat Jadwal 1.
- Honeywell: Dukungan kode lihat Jadwal 1.
Scan Engine adalah perangkat pemindaian yang tidak memerlukan pengembangan. Secara default, tombol samping akan memicu fungsi pemindaian kode. Ada tiga hasil output dari pemindaian kode, dengan default adalah output keyboard analog. Pengguna dapat membuka kotak edit apa pun, dan setelah pemindaian berhasil, hasil pemindaian akan secara otomatis dimasukkan ke dalam kotak edit.
Jika pengguna memerlukan perangkat lunak untuk memicu pemindaian kode atau perlu menyesuaikan tombol pemindaian kode, hal ini dapat diatur melalui antarmuka yang disediakan oleh layanan pemindaian kode.
Dokumen ini menjelaskan antarmuka yang terkait dengan layanan pemindaian kode (saat ini mendukung cara AIDL dan koneksi layanan).
2. Menghubungkan Layanan (AIDL)
2.1. AIDL
AIDL adalah singkatan dari Android Interface Definition Language. Ini adalah bahasa deskripsi untuk antarmuka komunikasi proses internal Android. Melalui AIDL, kita dapat mendefinisikan antarmuka komunikasi antar proses.
2.2. Menggunakan AIDL
Membangun koneksi dapat dibagi menjadi 5 langkah berikut:
- Tambahkan file AIDL yang termasuk dalam file sumber daya ke proyek Anda.
- Implementasikan
ServiceConnection
dalam kelas kode yang mengontrol pemindaian kode. - Panggil
ApplicationContext.bindService()
dan berikan implementasiServiceConnection
. Catatan:bindService
adalah panggilan non-blocking, artinya panggilan tidak selesai segera setelah dipanggil.ServiceConnected
harus diutamakan. - Dalam implementasi
ServiceConnection.onServiceConnected()
, Anda akan menerima instanceIBinder
(layanan yang dipanggil). PanggilIScanInterface.Stub.asInterface(service)
untuk mengubah argumen menjadi tipeIScanInterface
. - Sekarang Anda dapat memanggil metode yang didefinisikan dalam antarmuka
IScanInterface
.
Contoh Binding Service:
private static ServiceConnection conn = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { scanInterface = IScanInterface.Stub.asInterface(service); Log.i("setting", "Scanner Service Connected!"); } @Override public void onServiceDisconnected(ComponentName name) { Log.e("setting", "Scanner Service Disconnected!"); scanInterface = null; } }; public void bindScannerService() { Intent intent = new Intent(); intent.setPackage("com.sunmi.scanner"); intent.setAction("com.sunmi.scanner.IScanInterface"); bindService(intent, conn, Service.BIND_AUTO_CREATE); }
2.3. Antarmuka AIDL
No. | Fungsi |
---|---|
1 | void sendKeyEvent(KeyEvent key) – Menyesuaikan tombol pemicu |
2 | void scan() – Memulai pemindaian |
3 | void stop() – Menghentikan pemindaian |
4 | int getScannerModel() – Mendapatkan tipe pemindai |
Menyesuaikan Tombol Pemicu
@Override public boolean dispatchKeyEvent(KeyEvent event) { // Contoh: Gunakan nilai tombol X sebagai tombol pemicu pemindaian. if (event.getKeyCode() == x) { scanInterface.sendKeyEvent(event); } return super.dispatchKeyEvent(event); }
Memulai Pemindaian
scanInterface.scan();
Menghentikan Pemindaian
scanInterface.stop();
Mendapatkan Tipe Pemindai
scanInterface.getScannerModel();
3. Pengaturan
3.1. Menghapus Konfigurasi
Klik ikon menu di pojok kanan atas, lalu klik “Clear Config”.
3.2. Pemilihan Set Karakter
Default: UTF-8
Pilihan: UTF-8, GBK, ISO-8859-1, SHIFT-JIS
3.3. Mode Peringatan
Peringatan suara dan getaran diaktifkan secara default.
3.4. Mode Output Data
- Pengaturan
Output keyboard simulasi dipilih secara default.
Output siaran diaktifkan secara default.
Tipe barcode tidak dioutput secara default. Lihat CodeID untuk detailnya. - Pengenalan Siaran
Mendengarkan siaran:"com.sunmi.scanner.ACTION_DATA_CODE_RECEIVED"
Deskripsi bidang:data
: data karakter;source_byte
: Data mentah array byte (tidak termasuk pengaturan dasar seperti End Character, CodeID, suffix, dan pengaturan lanjutan, memerlukan versi 2.3.1 atau lebih tinggi).
Contoh:
private static final String ACTION_DATA_CODE_RECEIVED = "com.sunmi.scanner.ACTION_DATA_CODE_RECEIVED"; private static final String DATA = "data"; private static final String SOURCE = "source_byte"; private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String code = intent.getStringExtra(DATA); byte[] arr = intent.getByteArrayExtra(SOURCE); if (code != null && !code.isEmpty()) { mCode.setText(code); } } }; private void registerReceiver() { IntentFilter filter = new IntentFilter(); filter.addAction(ACTION_DATA_CODE_RECEIVED); registerReceiver(receiver, filter); }
3.5. Pemicu Pemindaian
Tombol hover default dimatikan.
3.6. Mode Pemindaian
Default: mode pemicu.
3.7. Pengaturan Prefix dan Suffix
Fungsi prefix dan suffix dinonaktifkan secara default. Mendukung karakter khusus seperti "\n"
, "\t"
, "xxx"
(nilai desimal ASCII tiga digit 0-255, memerlukan versi 2.2.2 atau lebih tinggi). Jika perlu menambahkan "\"
, masukkan "\\"
.
3.8. Dekoder
Pengguna dapat memilih untuk mengaktifkan atau menonaktifkan kode identifikasi dalam pengaturan. Default: sepenuhnya diaktifkan.
3.9. Parameter Dekoder
Temukan “Scanner Setting -> Decoder Parameters” dari pengaturan dock pemindaian untuk masuk ke halaman pengaturan sistem kode.
3.10. Pemformatan Data Lanjutan
Pemformatan Data Lanjutan – Penggantian Karakter, dinonaktifkan secara default dan dapat diaktifkan secara manual. Mendukung hingga 10 aturan. Anda dapat mengedit dan menghapus aturan. Klik “Add” untuk menambahkan.
4. Lampiran
4.1. Tabel 1
Kode | Newland (2096) | Zebra (1350) | Zebra (4710/4750) | Fp(1825) NL(1365) | Honeywell (3601/6603) |
---|---|---|---|---|---|
Code128 | √ | √ | √ | √ | √ |
UCC-EAN128 | √ | √ | √ | √ | √ |
EAN8 | √ | √ | √ | √ | √ |
EAN13 | √ | √ | √ | √ | √ |
UPC-E | √ | √ | √ | √ | √ |
UPC-A | √ | √ | √ | √ | √ |
Interleaved 2 of 5 (ITF) | √ | √ | √ | √ | √ |
Matrix 2 of 5 | √ | √ | √ | √ | √ |
Code39 | √ | √ | √ | √ | √ |
Codabar | √ | √ | √ | √ | √ |
Code93 | √ | √ | √ | √ | √ |
GS1 DataBar(RSS) | √ | √ | √ | √ | √ |
Composite-UCC | √ | √ | √ | √ | √ |
Composite-UPC | √ | √ | √ | √ | √ |
Code11 | √ | √ | √ | √ | √ |
ISBN | √ | √ | √ | √ | √ |
Industrial 2 of 5 | √ | √ | √ | √ | √ |
Standard 2 of 5(IATA) | √ | √ | √ | √ | √ |
Discrete 2 of 5 (DTF) | √ | √ | √ | √ | √ |
Dokumen ini memberikan panduan lengkap untuk menggunakan dan mengkonfigurasi Sunmi Scanner. Jika Anda memiliki pertanyaan lebih lanjut, silakan hubungi dukungan teknis Shanghai Sunmi Technology Co., Ltd.