BluetoothDevice.createrfcommsockettoservicerecord is Null - PullRequest
0 голосов
/ 06 июня 2019

Я успешно распознал устройство Bluetooth (HC-05), у меня есть его имя, MAC-адрес и состояние связи, но когда я пытаюсь создать клиентский сокет, чтобы инициировать соединение Bluetooth с ним, я получил нулевое гнездо.

//initializing bluetooth adapter
    val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter()
    if (bluetoothAdapter?.isEnabled == false) {
        val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
    }

    //creating a list of PAIRED DEVICES
    val pairedDevices: Set<BluetoothDevice>? = bluetoothAdapter?.bondedDevices

    //define a BluetoothDevice (the first on the list)
    pairedDevices?.forEach { device ->
        val deviceName = device.name
        val deviceHardwareAddress = device.address // MAC address
        val arduino: BluetoothDevice = pairedDevices.first()

Тогда:

val arduinoSocket = arduino?.createRfcommSocketToServiceRecord(uuid)

, который равен нулю.

Мой UUID:

private val uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB")

Есть идеи?

1 Ответ

0 голосов
/ 06 июня 2019

Ваш код выглядит нормально по большей части.Вместо использования UUID по умолчанию, вы можете попробовать использовать приведенный ниже код, чтобы попытаться получить фактический UUID устройства.

BluetoothSocket arduinoSocket = arduino.createRfcommSocketToServiceRecord(arduino.getUuids()[0].getUuid());
...