Get access to over 100 FireMonkey cross platform samples for Android, IOS, OSX, Windows, and Linux!

AndroidAppmethodCode SnippetDelphiDemoFiremonkey

Free Bluetooth Remote Control Vehicle App Source Code For Delphi XE5 Firemonkey On Android

| Delphi 11 10 XE8 XE7 XE Seattle Berlin Tokyo Rio Firemonkey Delphi Android Delphi IOS

Delphi XE5 Firemonkey Bluetooth Remote Control App | Delphi 11 10 XE8 XE7 XE Seattle Berlin Tokyo Rio Firemonkey Delphi Android Delphi IOSJim McKeeth from Embarcadero has made the source code available (on Github) for a remote control vehicle app that uses Bluetooth for communication available. The code is for Delphi XE5 and AppMethod and runs on Android and probably Windows. Should also work with Delphi XE6 Firemonkey with not many changes. If you are interested in the full Bluetooth interface in Object Pascal for the Android SDK you should check out the Object Pascal Android SDK Interface project on Github. There are interface files for android.bluetooth.BluetoothAdapter, android.bluetooth.BluetoothDevice, and android.bluetooth.BluetoothServerSocket among others. Check out the documentation for Bluetooth on Android here. The app does not make use of Bluetooth discovery (but you could add that yourself) and instead has the MAC address of each device hard coded into. The code makes use of the TJBluetoothAdapter interface to the Android SDK for talking to Bluetooth. Here is some sample code for connecting to the Bluetooth vehicle with the app:
uses
Androidapi.JNI.BluetoothAdapter, Android.JNI.Toast, System.SysUtils;

function DoConnect(MACAddress: String; out istream: JInputstream;
out ostream: JOutputStream): Boolean;
var
uid: JUUID;
targetMAC: string;
Adapter: JBluetoothAdapter;
remoteDevice: JBluetoothDevice;
Sock: JBluetoothSocket;
begin
uid := TJUUID.JavaClass.fromString
(stringtojstring('00001101-0000-1000-8000-00805F9B34FB'));
targetMAC := MACAddress;
Adapter := TJBluetoothAdapter.JavaClass.getDefaultAdapter;
remoteDevice := Adapter.getRemoteDevice(stringtojstring(targetMAC));
Toast('Connecting to ' + targetMAC);
Sock := remoteDevice.createRfcommSocketToServiceRecord(uid);
try
Sock.connect;
except
Toast('Could not create service record!');
Exit(False);
end;
if not Sock.isConnected then
begin
Toast('Failed to connect to ' + targetMAC + '! Try again...');
Exit(False);
end;
Toast('Connected!');
ostream := Sock.getOutputStream; // record io streams
istream := Sock.getInputStream;

// Application.ProcessMessages;

ostream.write(ord(255)); //
ostream.write(ord(255)); // get device id (nur Chitanda)
Sleep(200);
Result := True;
end;

Jim has a blog post and some videos up where the app is explained and demonstrated. You can check that out here. Find out more about the remote control vehicle and where to buy one here.

Or head over to Github and download the Delphi XE5 Firemonkey source code for the Bluetooth remote control car app.

Have Delphi Firemonkey questions? Ask and get answers on StackOverflow.

Related posts
DelphiDemoFiremonkeyLinuxOSXShowcaseWindows

AutoBlogAI: FireMonkey Client To Leverage LLMs And Generative AI For Blogging

DelphiFiremonkeyShowcaseUtilityWindows

Unleashing Creativity With Song Writer AI: A Deep Dive

DelphiFiremonkeyShowcaseWindows

How To Build Stable Diffusion Text To Image Prompts

AndroidC++BuilderDelphiFiremonkeyIOSOSXWindows

FireMonkey 10.4.2 Features Updated iOS 14, Android 11, And macOS 11 Support Plus Hundreds Of Fixes

Sign up for our Newsletter and
stay informed

Leave a Reply