add scanner sdk
This commit is contained in:
BIN
app/libs/barcode_scanner_library_v2.0.8.0.aar
Normal file
BIN
app/libs/barcode_scanner_library_v2.0.8.0.aar
Normal file
Binary file not shown.
2
app/libs/build.gradle
Normal file
2
app/libs/build.gradle
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
configurations.maybeCreate("default")
|
||||||
|
artifacts.add("default", file('barcode_scanner_library_v2.0.8.0.aar'))
|
||||||
@@ -1,18 +1,19 @@
|
|||||||
package com.example.hpostesting.presentation
|
package com.example.hpostesting.presentation
|
||||||
|
|
||||||
import com.example.hpostesting.presentation.dashboard.DashboardActivity
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
|
import android.os.AsyncTask
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import android.widget.EditText
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import com.example.hpostesting.data.DataHolder
|
import com.example.hpostesting.data.DataHolder
|
||||||
import com.example.hpostesting.data.constant.Constants
|
import com.example.hpostesting.data.constant.Constants
|
||||||
import com.example.hpostesting.data.constant.LanguageManager
|
import com.example.hpostesting.data.constant.LanguageManager
|
||||||
|
import com.example.hpostesting.presentation.dashboard.DashboardActivity
|
||||||
import com.example.hpostesting.presentation.hemocube.HemocubeActivity
|
import com.example.hpostesting.presentation.hemocube.HemocubeActivity
|
||||||
import com.example.hpostesting.presentation.testRight.TestRightActivity
|
import com.example.hpostesting.presentation.testRight.TestRightActivity
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
@@ -20,16 +21,29 @@ import com.google.firebase.crashlytics.FirebaseCrashlytics
|
|||||||
import com.journeyapps.barcodescanner.ScanContract
|
import com.journeyapps.barcodescanner.ScanContract
|
||||||
import com.journeyapps.barcodescanner.ScanIntentResult
|
import com.journeyapps.barcodescanner.ScanIntentResult
|
||||||
import com.journeyapps.barcodescanner.ScanOptions
|
import com.journeyapps.barcodescanner.ScanOptions
|
||||||
|
import com.zebra.barcode.sdk.sms.ConfigurationUpdateEvent
|
||||||
|
import com.zebra.scannercontrol.DCSSDKDefs
|
||||||
|
import com.zebra.scannercontrol.DCSSDKDefs.DCSSDK_COMMAND_OPCODE
|
||||||
|
import com.zebra.scannercontrol.DCSSDKDefs.DCSSDK_RESULT
|
||||||
|
import com.zebra.scannercontrol.DCSScannerInfo
|
||||||
|
import com.zebra.scannercontrol.FirmwareUpdateEvent
|
||||||
|
import com.zebra.scannercontrol.IDcsSdkApiDelegate
|
||||||
|
import com.zebra.scannercontrol.SDKHandler
|
||||||
import `in`.sminnovations.hpostesting.R
|
import `in`.sminnovations.hpostesting.R
|
||||||
import `in`.sminnovations.hpostesting.databinding.ActivityKitScanBinding
|
import `in`.sminnovations.hpostesting.databinding.ActivityKitScanBinding
|
||||||
|
import java.nio.charset.StandardCharsets
|
||||||
|
|
||||||
class KitScanActivity : AppCompatActivity() {
|
class KitScanActivity : AppCompatActivity(), IDcsSdkApiDelegate {
|
||||||
|
|
||||||
private val TAG = "KitScanActivity"
|
private val TAG = "KitScanActivity"
|
||||||
private lateinit var binding: ActivityKitScanBinding
|
private lateinit var binding: ActivityKitScanBinding
|
||||||
|
|
||||||
private lateinit var sharedPreference: SharedPreferences
|
private lateinit var sharedPreference: SharedPreferences
|
||||||
|
|
||||||
|
var sdkHandler: SDKHandler? = null
|
||||||
|
var editBarcode: EditText? = null
|
||||||
|
var mScannerInfoList = ArrayList<DCSScannerInfo>()
|
||||||
|
|
||||||
private val barcodeLauncher = registerForActivityResult(
|
private val barcodeLauncher = registerForActivityResult(
|
||||||
ScanContract()
|
ScanContract()
|
||||||
) { result: ScanIntentResult ->
|
) { result: ScanIntentResult ->
|
||||||
@@ -51,6 +65,35 @@ class KitScanActivity : AppCompatActivity() {
|
|||||||
super.attachBaseContext(newBase)
|
super.attachBaseContext(newBase)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
override fun dcssdkEventScannerAppeared(dcsScannerInfo: DCSScannerInfo?) {}
|
||||||
|
|
||||||
|
override fun dcssdkEventScannerDisappeared(i: Int) {}
|
||||||
|
|
||||||
|
override fun dcssdkEventCommunicationSessionEstablished(dcsScannerInfo: DCSScannerInfo?) {}
|
||||||
|
|
||||||
|
override fun dcssdkEventCommunicationSessionTerminated(i: Int) {}
|
||||||
|
// override fun dcssdkEventBarcode(p0: ByteArray?, p1: Int, p2: Int) {
|
||||||
|
// TODO("Not yet implemented")
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
override fun dcssdkEventImage(bytes: ByteArray?, i: Int) {}
|
||||||
|
|
||||||
|
override fun dcssdkEventVideo(bytes: ByteArray?, i: Int) {}
|
||||||
|
|
||||||
|
override fun dcssdkEventBinaryData(bytes: ByteArray?, i: Int) {}
|
||||||
|
|
||||||
|
override fun dcssdkEventFirmwareUpdate(firmwareUpdateEvent: FirmwareUpdateEvent?) {}
|
||||||
|
|
||||||
|
override fun dcssdkEventAuxScannerAppeared(
|
||||||
|
dcsScannerInfo: DCSScannerInfo?,
|
||||||
|
dcsScannerInfo1: DCSScannerInfo?
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun dcssdkEventConfigurationUpdate(configurationUpdateEvent: ConfigurationUpdateEvent?) {}
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
@@ -110,7 +153,8 @@ class KitScanActivity : AppCompatActivity() {
|
|||||||
setSupportActionBar(binding.toolbar)
|
setSupportActionBar(binding.toolbar)
|
||||||
|
|
||||||
binding.btnScanNow.setOnClickListener {
|
binding.btnScanNow.setOnClickListener {
|
||||||
startScanningNow()
|
// startScanningNow()
|
||||||
|
pullTrigger()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -164,6 +208,79 @@ class KitScanActivity : AppCompatActivity() {
|
|||||||
Toast.makeText(this, R.string.invalid_kit_number, Toast.LENGTH_LONG).show()
|
Toast.makeText(this, R.string.invalid_kit_number, Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Setting up the SDK handler
|
||||||
|
|
||||||
|
//Setting up the SDK handler
|
||||||
|
sdkHandler = SDKHandler(this)
|
||||||
|
|
||||||
|
//Registers a particular object which conforms to IDcsSdkApiDelegate interface as a receiver of SDK notifications.
|
||||||
|
|
||||||
|
//Registers a particular object which conforms to IDcsSdkApiDelegate interface as a receiver of SDK notifications.
|
||||||
|
sdkHandler!!.dcssdkSetDelegate(this)
|
||||||
|
|
||||||
|
//this command is telling the sdk that we're going to be connecting to the scanner via USB
|
||||||
|
|
||||||
|
//this command is telling the sdk that we're going to be connecting to the scanner via USB
|
||||||
|
sdkHandler!!.dcssdkSetOperationalMode(DCSSDKDefs.DCSSDK_MODE.DCSSDK_OPMODE_SNAPI)
|
||||||
|
|
||||||
|
|
||||||
|
//deciding what kind of notifications we want to receive. Explained more in the function
|
||||||
|
//first we use bitmapping to set these values into the notifications_mask.
|
||||||
|
|
||||||
|
|
||||||
|
//deciding what kind of notifications we want to receive. Explained more in the function
|
||||||
|
//first we use bitmapping to set these values into the notifications_mask.
|
||||||
|
var notifications_mask = 0
|
||||||
|
// We would like to subscribe to all barcode events
|
||||||
|
// We would like to subscribe to all barcode events
|
||||||
|
notifications_mask =
|
||||||
|
notifications_mask or DCSSDKDefs.DCSSDK_EVENT.DCSSDK_EVENT_BARCODE.value
|
||||||
|
// subscribe to events set in notification mask
|
||||||
|
// subscribe to events set in notification mask
|
||||||
|
sdkHandler!!.dcssdkSubsribeForEvents(notifications_mask)
|
||||||
|
|
||||||
|
|
||||||
|
//so adding all the scanners to the mScannerInfoList, then connecting to the first scanner.
|
||||||
|
//There's only one scanner so this step is unnecessary, I did it thinking about possible scalability.
|
||||||
|
//here I just get the list of available scanners which also returns the USB scanner attached to the tinker board.
|
||||||
|
|
||||||
|
|
||||||
|
//so adding all the scanners to the mScannerInfoList, then connecting to the first scanner.
|
||||||
|
//There's only one scanner so this step is unnecessary, I did it thinking about possible scalability.
|
||||||
|
//here I just get the list of available scanners which also returns the USB scanner attached to the tinker board.
|
||||||
|
mScannerInfoList.addAll(sdkHandler!!.dcssdkGetAvailableScannersList())
|
||||||
|
|
||||||
|
//I'm doing mScannerInfoList.get(0) because there's only one scanner which will be at position 0.
|
||||||
|
|
||||||
|
//I'm doing mScannerInfoList.get(0) because there's only one scanner which will be at position 0.
|
||||||
|
sdkHandler!!.dcssdkEstablishCommunicationSession(mScannerInfoList[0].scannerID)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun pullTrigger() {
|
||||||
|
if (!mScannerInfoList[0].isActive) {
|
||||||
|
sdkHandler!!.dcssdkEstablishCommunicationSession(mScannerInfoList[0].scannerID)
|
||||||
|
}
|
||||||
|
val inXML = "<inArgs><scannerID> 1 </scannerID></inArgs>"
|
||||||
|
val outXML = StringBuilder()
|
||||||
|
val result: DCSSDK_RESULT =
|
||||||
|
sdkHandler!!.dcssdkExecuteCommandOpCodeInXMLForScanner(
|
||||||
|
DCSSDK_COMMAND_OPCODE.DCSSDK_DEVICE_PULL_TRIGGER, inXML, outXML, 1
|
||||||
|
)
|
||||||
|
if (result == DCSSDK_RESULT.DCSSDK_RESULT_SUCCESS) Log.d(
|
||||||
|
"Scanning",
|
||||||
|
"Success"
|
||||||
|
) else if (result == DCSSDK_RESULT.DCSSDK_RESULT_FAILURE) Log.d("Scanning", "Failed")
|
||||||
|
//new MyAsyncTask(1, DCSSDKDefs.DCSSDK_COMMAND_OPCODE.DCSSDK_DEVICE_PULL_TRIGGER,null).execute(inXML);
|
||||||
|
}
|
||||||
|
|
||||||
|
//this function is called if barcode is detected.
|
||||||
|
override fun dcssdkEventBarcode(barcodeData: ByteArray?, barcodeType: Int, fromScannerID: Int) {
|
||||||
|
val result = String(barcodeData!!)
|
||||||
|
Log.d("BARCODE", result)
|
||||||
|
runOnUiThread {
|
||||||
|
binding.tvTitle2.text = result
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun checkHemoCubeKitData(): Boolean {
|
private fun checkHemoCubeKitData(): Boolean {
|
||||||
|
|||||||
9
app/src/main/res/layout/activity_kitscan_java.xml
Normal file
9
app/src/main/res/layout/activity_kitscan_java.xml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
tools:context="com.example.hpostesting.presentation.KitscanJava">
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
Binary file not shown.
2
barcode_scanner_library_v2.0.8.0/build.gradle
Normal file
2
barcode_scanner_library_v2.0.8.0/build.gradle
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
configurations.maybeCreate("default")
|
||||||
|
artifacts.add("default", file('barcode_scanner_library_v2.0.8.0.aar'))
|
||||||
Reference in New Issue
Block a user