HC 05 / Arduino проблема с подключением - PullRequest
0 голосов
/ 02 июля 2019

Я получаю следующее исключение при отправке данных из приложения Xamarin.Android в Arduino через модуль Bluetooth HC-05

read failed, socket might closed or timeout, read ret: -1

Я прочитал все ответы, которые уже есть, но ни один из них не решил их.

Я использовал следующий код.

_adapter = BluetoothAdapter.DefaultAdapter;
            if (_adapter == null)
            {
                return;
            }

            if (!_adapter.IsEnabled)
            {
                const int REQUEST_ENABLE_BT = 2;
                var enableBtIntent = new Intent(BluetoothAdapter.ActionRequestEnable);
            }

            var pairedDevices = _adapter.BondedDevices.ToList();


            if (pairedDevices.Any())
            {
                foreach (BluetoothDevice dev in _adapter.BondedDevices)
                {
                    bonded.Add(dev);
                }

                 bluetoothDevice = _adapter.GetRemoteDevice(bonded[0].Address);


                _adapter.CancelDiscovery();

                btSocket = bluetoothDevice.CreateRfcommSocketToServiceRecord(Java.Util.UUID.FromString("00001101-0000-1000-8000-00805f9b34fb"));

                btSocket.Connect();

                btSocket.OutputStream.WriteByte(messageBytes[0]);

1 Ответ

0 голосов
/ 03 июля 2019

Проблема с сокетами

Вы можете использовать мой Bluetooth class i, который использовался в приложении Xamarin, для Android, когда я подключился к своему HC-05, прочитайте после строки 208 в коде.

Также в моем репозитории github вы можете найти Arduino, код HC-5 в разделе ArduBotSlave .Это машина для приготовления коктейлей, часть Arduino, которая принимает заказы от приложения для Android, от Xamarin.

Проблема с разрешениями

У вас есть все необходимые разрешения для использования Bluetooth?Некоторые разрешения молча завершаются ошибкой и отображаются как ошибка.

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

...