康耐视条形码SDK不扫描代码

艾哈迈德·雷汉(Ahmad Rehan)|

我已经在我的应用程序中完全实现了Cognex cmbSDK。我正在使用试用版。关键,一切都正确实现,当我单击按钮时,它会打开相机并显示功能,但不会扫描任何类型的代码。您能帮我为什么它不起作用吗?

这是我的代码:

open class MainActivity : AppCompatActivity(),
ReaderDevice.OnConnectionCompletedListener, ReaderDevice.ReaderDeviceListener,ActivityCompat.OnRequestPermissionsResultCallback{

private val permissionCode = 123
private val sdkKey: String = "My KEY"
private lateinit var readerDevice: ReaderDevice

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    readerDevice = ReaderDevice.getPhoneCameraDevice(this, CameraMode.NO_AIMER,
        PreviewOption.NO_ZOOM_BUTTON, null, sdkKey)
    readerDevice.setReaderDeviceListener(this)
    readerDevice.enableImage(true)
    readerDevice.enableImageGraphics(false)
    readerDevice.connect(this)
    enableSymbologies()

    btnScanBarcode.setOnClickListener{
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
            == PackageManager.PERMISSION_DENIED){
            ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA), permissionCode)
        }
        readerDevice.startScanning()
    }
}

override fun onConnectionCompleted(readerDevice: ReaderDevice?, error: Throwable?) {
    Toast.makeText(this, "Connection Created", Toast.LENGTH_LONG).show()
    if (error != null) {
        // ask for Camera Permission if necessary
        if (error is CameraPermissionException) ActivityCompat.requestPermissions(
            this,
            arrayOf(Manifest.permission.CAMERA),
            permissionCode
        )
    }
}

override fun onAvailabilityChanged(readerDevice: ReaderDevice?) {
}

override fun onConnectionStateChanged(readerDevice: ReaderDevice?) {

}

override fun onReadResultReceived(readerDevice: ReaderDevice, results: ReadResults) {
    readerDevice.stopScanning()
    Toast.makeText(this, "Result Received. ${results.getResultAt(0).symbology}", Toast.LENGTH_LONG).show()
    Log.d("barcode" ,"MY BARCODE RESULT: ")

    if (results.subResults != null && results.subResults.size > 0) {
        for (subResult in results.subResults) {
            createResultItem(subResult)
        }
    } else if (results.count > 0) {
        createResultItem(results.getResultAt(0))
    }
}

private fun createResultItem(result: ReadResult) {
    val item =
        HashMap<String, String>()
    if (result.isGoodRead) {
        item["resultText"] = result.readString
        val sym = result.symbology
        if (sym != null) item["resultType"] =
            result.symbology.getName() else item["resultType"] =
            "UNKNOWN SYMBOLOGY"
    } else {
        item["resultText"] = "NO READ"
        item["resultType"] = ""
    }
    Toast.makeText(this, item["resultText"], Toast.LENGTH_SHORT).show()
}

override fun onRequestPermissionsResult(
    requestCode: Int,
    permissions: Array<out String>,
    grantResults: IntArray
) {
    if(requestCode == permissionCode){
        readerDevice.startScanning()
    }
    super.onRequestPermissionsResult(requestCode, permissions, grantResults)
}

private fun enableSymbologies(){
    readerDevice.setSymbologyEnabled(Symbology.DATAMATRIX, true, object : OnSymbologyListener {
        override fun onSymbologyEnabled(
            reader: ReaderDevice,
            symbology: Symbology,
            enabled: Boolean,
            error: Throwable
        ) {
            Log.e(
                this.javaClass.simpleName,
                "Failed to enable Symbology.DATAMATRIX"
            )
        }
    })
    readerDevice.setSymbologyEnabled(Symbology.C128, true, object : OnSymbologyListener {
        override fun onSymbologyEnabled(
            reader: ReaderDevice,
            symbology: Symbology,
            enabled: Boolean,
            error: Throwable
        ) {
            Log.e(
                this.javaClass.simpleName,
                "Failed to enable Symbology.C128"
            )
        }
    })
    readerDevice.setSymbologyEnabled(Symbology.UPC_EAN, true, object : OnSymbologyListener {
        override fun onSymbologyEnabled(
            reader: ReaderDevice,
            symbology: Symbology,
            enabled: Boolean,
            error: Throwable
        ) {
            Log.e(
                this.javaClass.simpleName,
                "Failed to enable Symbology.UPC_EAN"
            )
        }
    })
    readerDevice.setSymbologyEnabled(Symbology.CODABAR, false, object : OnSymbologyListener {
        override fun onSymbologyEnabled(
            reader: ReaderDevice,
            symbology: Symbology,
            enabled: Boolean,
            error: Throwable
        ) {
            Log.e(
                this.javaClass.simpleName,
                "Failed to disable Symbology.CODABAR"
            )
        }
    })
    readerDevice.setSymbologyEnabled(Symbology.C93, false, object : OnSymbologyListener {
        override fun onSymbologyEnabled(
            reader: ReaderDevice,
            symbology: Symbology,
            enabled: Boolean,
            error: Throwable
        ) {
            Log.e(
                this.javaClass.simpleName,
                "Failed to disable Symbology.C93"
            )
        }
    })
    readerDevice.dataManSystem
        .sendCommand(
            "GET DEVICE.TYPE"
        ) { _, response ->
            if (response.error == null) {
                Log.d("Device type", response.payLoad)
            }
        }
    readerDevice.dataManSystem
        .sendCommand(
            "GET DEVICE.FIRMWARE-VER"
        ) { _, response ->
            if (response.error == null) {
                Log.d("Firmware version", response.payLoad)
            }
        }
}}

清单文件代码:

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />

<uses-feature android:name="android.hardware.camera" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:hardwareAccelerated="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity"
        android:configChanges="orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <meta-data android:name="MX_MOBILE_LICENSE"
        android:value="HERE I PUT MY KEY"/>
</application>
纳兹古尔

另外,如果您在我们的SDK中看到我们将其放置在configureReaderDevice中(在这里放置您的符号),然后从onConnectionStateChanged调用它

但是,请打开此链接上的支持票,我们的技术支持将解决您的问题-https://cmbdn.cognex.com/tickets

连接到reader设备后,必须添加启用符号系统

问候,

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

条形码扫描损坏

来自分类Dev

在WebView Android中扫描条形码

来自分类Dev

如何模拟条形码扫描事件

来自分类Dev

从移动网站扫描条形码?

来自分类Dev

用于条形码扫描的VBA Excel代码,可返回扫描时间

来自分类Dev

用zxing源代码和核心java创建条形码扫描仪

来自分类Dev

iOS:AVFoundation条形码扫描-更改扫描区域

来自分类Dev

iOS:AVFoundation条形码扫描-更改扫描区域

来自分类Dev

条形码扫描仪仅显示条形码的第一位

来自分类Dev

在iOS 8中扫描条形码并显示条形码

来自分类Dev

如何使条形码扫描仪从数据库中检查条形码编号?

来自分类Dev

如何从C#Winforms中的条形码扫描仪读取条形码值

来自分类Dev

条形码扫描仪仅显示条形码的第一位

来自分类Dev

iOS条形码扫描API能够同时读取3条条形码

来自分类Dev

适用于iPad的条形码生成器代码或SDK

来自分类Dev

扫描HTML5 / JavaScript中的条形码

来自分类Dev

蓝牙条形码扫描仪的解码输出

来自分类Dev

Rails应用的条形码扫描仪

来自分类Dev

本地扫描UIImage的条形码(即不使用ZBar)

来自分类Dev

从Swing中的条形码扫描仪读取

来自分类Dev

使用Zbar或Zxing在各个方向进行条形码扫描

来自分类Dev

在Java中使用Zxing扫描多个条形码

来自分类Dev

从Gallery Android中的图像扫描条形码

来自分类Dev

Winforms按键和条形码扫描仪

来自分类Dev

Xamarin形成条形码扫描仪

来自分类Dev

片段中的条形码扫描仪

来自分类Dev

Zxing-动态更改扫描的条形码类型

来自分类Dev

错误进行条形码扫描的Android Mobile Vision

来自分类Dev

如何使条形码扫描仪的中心透明?