Marco A. Ghost
Marco A. Ghost

Reputation: 53

MonoDroid Bluetooth

I have been working with Monodroid for a few days and still can't figure out how to send a command through Bluetooth.

This is my scenario: I have a Tablet/Cellphone working with Android 2.1+ and need to send and receive data to a Bluetooth printer (in bytes).

What i managed so far:

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 program asks for the pairing info, with is done correctly. I have tried many ways to send the command:

// 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();

No error is raised. I'm running out of options here...

Thanks in advance!

Upvotes: 2

Views: 1988

Answers (1)

Matthew Honeycutt
Matthew Honeycutt

Reputation: 56

I know this is a very old thread, but I wanted to post a reply so others will know the answer. I too searched hard with no luck.

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

Thanks.

Upvotes: 4

Related Questions