Tarasov
Tarasov

Reputation: 3695

How can I do connection with Bluetooth Printer with Android?

I want to connect with Android to a bluetooth printer with Delphi, using the technique described in the Bluetooth Paired Devices Browser example by David I.

My printer is the Panda BIXOLON SPP-R200II:

I get the Error:

"java.io.IOException: read failed, socket might closed or timeout, read ret: -1"

by sock.connect;

Here is my Code:

procedure TForm1.ListView1ItemClick(const Sender: TObject;
  const AItem: TListViewItem);
begin

  ShowMessage('You selected: '+Aitem.Text);

  // depending on the bluetooth device selected - do something with it
  targetMACAddress:=Aitem.Detail;
  if trim(targetMACAddress)='' then exit;

  Adapter:=TJBluetoothAdapter.JavaClass.getDefaultAdapter;
  remoteDevice:=Adapter.getRemoteDevice(stringtojstring(targetMACAddress));
  sock:=remoteDevice.createRfcommSocketToServiceRecord(UID);
  try
    sock.connect;
  except
  on E : Exception do
    ShowMessage(E.Message);
  end;
  if not sock.isConnected then
  begin
    ShowMessage('Failed to connect to Try again...');
    exit;
  end;
  listview1.Visible:=false;     // hide the chooser
  label1.Visible:=false;        // hide the chooser
  reload.Visible:=false;        // hide the chooser
end;

Upvotes: 2

Views: 1700

Answers (1)

Jean
Jean

Reputation: 11

All communication made with the Bluetooth device must be carried out through Threads.
I transcribed a project in Android Studio for Delphi, using threads, and everything worked. Do not use Timer, use the TThread object.

Upvotes: 1

Related Questions