簡體   English   中英

MonoDroid藍牙

[英]MonoDroid Bluetooth

我已經與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();

沒有錯誤。 我這里的選項用完了...

提前致謝!

我知道這是一個非常老的話題,但是我想發表回復,以便其他人知道答案。 我也很努力,沒有運氣。

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

謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM