Xamarin Android,蓝牙连接不工作

本文关键字:连接 工作 Android Xamarin | 更新日期: 2023-09-27 18:17:52

我正在尝试使用Xamarin studio进行简单的蓝牙连接。我的代码成功构建,但当我尝试连接蓝牙时引发java . io . ioexception。

这是我的代码片段。

    BluetoothAdapter  BluetoothAdapter1 = BluetoothAdapter.DefaultAdapter;
    BluetoothSocket socket;
    BluetoothDevice device
    btnConnect.Click += async delegate {
            if (BluetoothAdapter1 == null)
            {
                AlertDialog1.SetMessage("Device Does not support bluetooth");
                AlertDialog1.Show();
            }

            if(!BluetoothAdapter1.IsEnabled)
            {
                AlertDialog1.SetMessage("Bluetooth is not enabled");
                AlertDialog1.Show();
            }
            else{
                device = (from bd in BluetoothAdapter1.BondedDevices where bd.Name == "GT-N8000" select bd).FirstOrDefault();
                if(device == null)
                {
                    AlertDialog1.SetMessage("Device Not Found 'n Make sure you are paired to the bluetooth device");
                    AlertDialog1.Show();
                }
                else
                {
                    ParcelUuid[] list = device.GetUuids();
                    String MyUUID = list[0].ToString();

                    try 
                    {
                    socket = device.CreateRfcommSocketToServiceRecord(UUID.FromString(MyUUID));

                        socket.Connect();
                    btnConnect.Text = socket.RemoteDevice.Name;
                    socket.Close();
                }
                    catch (Exception e)
                    {
                        AlertDialog1.SetMessage(e.Message);
                        AlertDialog1.Show();
                    }

                }
            }

这是我的一些日志输出。

[单声道]Assembly Ref addresf MatrixDisplay[0xb8da14b8] -> System。核心[0 xb8e6b7e0]: 3[BluetoothAdapter] 584852085: getState()。返回12getBluetoothService()被调用,没有BluetoothManagerCallback跳过295帧!应用程序可能在其主线程上做了太多的工作。[ViewRootImpl]根视图被移除导致的掉落事件:MotionEvent {action=ACTION_MOVE, id[0]=0, x[0]=599.4283, y[0]=596.4481, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=328245301, downTime=328245292, deviceId=1, source=0x1002}[InputEventReceiver]尝试完成一个输入事件,但是输入事件接收者已经被处理掉了。[InputEventReceiver]尝试完成一个输入事件,但是输入事件接收者已经被处置。

Xamarin Android,蓝牙连接不工作

我通过在连接后不立即关闭套接字来解决这个问题。