MonoDroid Bluetooth

本文关键字:Bluetooth MonoDroid | 更新日期: 2023-09-27 18:09:30

我已经使用Monodroid几天了,但仍然不知道如何通过蓝牙发送命令。

这是我的场景:我有一个平板电脑/手机与Android 2.1+工作,需要发送和接收数据到蓝牙打印机(以字节为单位)。

到目前为止我做了什么:

using Android.Bluetooth; // library necessary
BluetoothAdapter bth = BluetoothAdapter.DefaultAdapter;
if (!bth.IsEnabled)
    bth.Enable();
ICollection<BluetoothDevice> bthD = bth.BondedDevices;
foreach (BluetoothDevice d in bthD)
{
    if (d.Name == "DPP-350")
    {
        Java.Util.UUID UUID = Java.Util.UUID.FromString("00001101-0000-1000-8000-00805F9B34FB");
        // Get the BLuetoothDevice object
        BluetoothSocket s = d.CreateRfcommSocketToServiceRecord(UUID);
        s.Connect();
        // Try to send command
        ...
        s.Close()
    }
}

程序要求配对信息,如果正确完成。我尝试了很多方法来发送命令:

// the command
// Self_Test = Chr(27) + Chr(84) = ESC T
byte[] dBytes = System.Text.Encoding.GetEncoding(1252).GetBytes(Self_Test);
// wont work
new Java.IO.ObjectOutputStream(s.OutputStream).Write(dBytes);
// wont work
System.IO.Stream st = s.OutputStream;
if (st.CanWrite)
{
   st.Write(dBytes, 0, dBytes.Length);
   st.Flush();
}
// wonk work
s.OutputStream.Write(dBytes, 0, dBytes.Length);
s.OutputStream.Flush();

没有错误。我已经没有选择了…

提前感谢!

MonoDroid Bluetooth

我知道这是一个非常古老的线程,但是我想发布一个回复,这样其他人就会知道答案。我也拼命找,也没找到。

s.OutputStream.BeginWrite(buffer, 0, buffer.Length,new AsyncCallback(delegate {}), State.Connected);

谢谢。