Wątek przeniesiony 2023-03-17 10:37 z Mobilne przez cerrato.

Skanery kodów kreskowych na bluetooth

0

Mam aplikację do inwentaryzacji w Kotlinie działającą na terminalach Zebra. Na tych urządzeniach obsługa skanera jest banalna i działa bardzo dobrze.
Niestety ktoś sobie wymyślił, że będzie używał Eyoyo 2D Bluetooth Ring Barcode Scanner.
Próbowałem obsłużyć to w aplikacji ale niestety nie idzie mi to :(
Czy ktoś jest chętny na napisanie kodu, który będzie odczytywał kody ze skanerów na bluetooth (min. Android 9), oczywiście odpłatnie.
Te urządzenia mogą działać jako BLE,HID lub SPP.
Jak ktoś z Państwa zainteresowany to proszę pisać.
Pozdrawiam

0

A możesz napisać, z czym dokładnie jest problem?

0

w skrócie

  • urządzenie jako takie potrafię pobrać - dostaję adres UUID i nazwę (np val xpairedDevices = btManager.adapter.bondedDevices;)
    próbowałem tak :
class SPPconnect {

    companion object {
        lateinit var ServerSocket: BluetoothServerSocket        // The local server socket
        lateinit var socket: BluetoothSocket                    // socket used for communication

        val A_UUID: UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB")
        val A_NAME = "BluetoothServer"

        suspend fun acceptConnection(btadapter: BluetoothAdapter): String {
            val BTadapter: BluetoothAdapter = btadapter

            try {
                ServerSocket = BTadapter.listenUsingInsecureRfcommWithServiceRecord(A_NAME, A_UUID)
                socket = ServerSocket.accept()
            }catch(e:SecurityException){
                Log.i("BT",e.message.toString())
            }

            // a call has been accepted
            ServerSocket.close() // Close the local Server Socket

            return "Accepted"
        }
    }
}

wisi na ServerSocket.accept()

potem napisałem funkcję :

    fun connect(device: BluetoothDevice) {
        val permission = ContextCompat.checkSelfPermission(this,
            Manifest.permission.BLUETOOTH_SCAN)
        if (permission != PackageManager.PERMISSION_GRANTED
        ) {

            makeRequest();
        }
        m_bluetoothAdapter?.cancelDiscovery()
        val socket = device.createInsecureRfcommSocketToServiceRecord( device.uuids[0].uuid)
        m_bluetoothAdapter.enable();

        Thread().run {

            while (!socket.isConnected) {
                try {
                    socket.connect()
                } catch (e: Exception) {
                    Log.d("DEVICE_CONNECT_FAIL", e.toString())
                }
            }


            if (socket.isConnected) {
                interrupt()
            }
        }
    }

to przy socket.connect() mam getBluetoothService() called with no BluetoothManagerCallback
Generalnie nie bardzo to ogarniam chyba i tak błądzę i nic z tego nie ma :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1