Bluetooth PC Remote Control


The project target is building an electronic PC Remote Control, having Bluetooth as the primary network communication protocol. Our first aim is the study of the Bluetooth standards and specifications and second aim it is the development of an application, a multi-platform, multi-system, universal PC remote controller.

How it all started

The motivation for this project arose back in 2006, when we took part at the National Student Symposium. Our problem was in advancing and describing the presentation slides as we had to move from the PC to the front of our audience and back. This movement was a waste of time but we had no other solution. In order to decrease this time we saw the need to have a PC remote. A remote that will work on any operating system and on any platform. In order to grow our motivation we have made a study through our teachers and colleges on our idea. The results where in our favor. Many of the questioned persons have sustained that a universal remote for PCs will be very useful software and a gladly received product.

What is so special about Bluetooth PC Remote

BPCR (which stands for Bluetooth PC Remote) is a program – a personal project, made in our free time – that enables remote controlling of a computer using as controlling device a Java based phone or PDA, and the connectivity medium, Bluetooth.
There are only a few other computer remote control applications on the software market and most of them are created for Windows based phones or PDA and the important thing is that none of these applications was created in Romania or have a Romanian programmer involved in it.

This application implements the server-client architecture because naturally our system comprised of two components, which are the computer (server), and the phone or PDA (client). Most of similar applications are created using C# so they only work on Windows based phones or PDA.

The great benefit of this application is that it can be used with all mobile devices because the remote control’s operating system, which is in many cases Symbian for phones or Windows CE for PDAs, has built in Bluetooth libraries that are available to programmers and also a java virtual machine to run any Java based application on it. The client side uses these libraries to perform Bluetooth operations.

So, in our aim to realize a universal, in the good way, PC remote we have choose as language the Java language – the only language that it is platform – independent, device independent, more reliable and used almost in everything in our daily life.
In order to realize the connection between PC and a mobile phone we use the Bluetooth, which improves our universal concept, because in our day’s more mobile phones supports Bluetooth connection.

Our application describes the functionality of a remote controller and its basic common actions; the basic actions such as moving the mouse cursor on the PC screen, execute a mouse click/double click or a key stroke, are implemented for the project first version; for the second version the highly used application are implemented for a full control – here I talk about Microsoft Power Point, Winamp and Microsoft Media Player. The project it is divide into two parts: the server – a J2SE based implementation using as network and communication protocol the Bluetooth and the client – a J2ME based implementation using the newest supported libraries for the mobile devices.

The server functionality it is complex but we try to presents it in a summary way:

  • discovers the client who – is a Bluetooth-enabled mobile phone – sends request to server (conform to the BPCR Protocol)
  • listen the client request
  • interprets them and executes the corresponding action.<.li>

Being a application based on XML, the server configuration, defined actions are described in an external XML file.
At the startup the application initialize itself :

public BPCRServer() {
// --------
synchronized (this) {
// read the previous saved settings
// initialize the OS native controller
// initialize and opens the communication channel
// The Java Tray Icon it is supported only for JDK 1.6.0
// If you OS have not implemented a tray section
// the application will not run
// -----------

After initialization the server listens to the client request (if any) and responds with a success / error message and executes the specified action :

public synchronized void processRemoteMessage(Message msg) {
// evaluateType
if (msg.getType() == Message.REQUEST_PC_REMOTE_ACTION){
} else {
// process an unknown action request message

Any message received it is analyzed and interpreted by the MessageInterpreter which decides which action , according to the message should be executed.

public class MessageInterpreter implements BPCRListener {
// ----------------
public void readAndExecute(String message){
if (isKeyAction(message)){
String command = KEY_PREFIX + message;
listener.executeAction(new BPCREvent(command));
// ----------------
public void executeAction(BPCREvent event) {
// ----------------

The Server Robot check and retrieves the action definitions from the XML file and according with the received event executes the action – defined in settings.

The client functionality it is simpler: discover the blue server, connects to it and send the user request to server in order to be executed.

// device discovery
private void searchForDevices() throws IOException {
// -------------------------
try {
final LocalDevice localDevice = LocalDevice.getLocalDevice();
// this is non-blocking
DiscoveryAgent discoveryAgent = localDevice.getDiscoveryAgent();
discoveryAgent.startInquiry(INQUIRY_ACCESS_TYPE, this);
} catch (IOException e) {
// process exception – if any
// for the selected device – the service discovery
private void searchForService(final RemoteDevice device) {
final String deviceName = getDeviceName(device);
UUID[] uuids = new UUID[1];
uuids[0] = uuid;
try {
int[] attrSet = null; // default attrSet
DiscoveryAgent discoveryAgent = LocalDevice.getLocalDevice().getDiscoveryAgent();
int transactionId = discoveryAgent.searchServices(attrSet, uuids, device, this);
} catch (BluetoothStateException e) {
// process any exception

If the services are discovered then the client connects to the server and request a application confirmation. After the server communication it is established then the client can start sending actions request to server in order to be executed.

At its second version the application runs only on Microsoft Windows platform. The Linux support is scheduled for the third version.

The project team is made from:

  • Gabriel Sofonea (project coordonator)
  • Laurentiu Ciovica (server-side programmer)
  • Eugen Cojocaru (client-side programmer)
  • Liviu Ciovica( interface designer )

Finally, there’s another very important peculiarity of what does Cialis that brings it so high above its alternatives. It is the only med that is available in two versions – one intended for use on as-needed basis and one intended for daily use. As you might know, Viagra and Levitra only come in the latter of these two forms and should be consumed shortly before expected sexual activity to ensure best effect. Daily Cialis, in its turn, contains low doses of Tadalafil, which allows to build its concentration up in your system gradually over time and maintain it on acceptable levels, which, consequently, makes it possible for you to enjoy sex at any moment without having to time it.

18 thoughts on “Bluetooth PC Remote Control”
  • Fiqih MukhlisMuharramsyah says:

    Can i download the full script?
    Because i want to learn about it.
    Thank you very-very much before.

    October 31, 2007 at 1:35 pm
  • Yannis says:

    Could I also have a look at the code?

    November 26, 2007 at 1:30 am
  • Yannis says:

    Thanks in advance

    November 26, 2007 at 1:30 am
  • faizan says:

    thanks for the information….am looking for a similar project for my final year engineering….. can i get some extra information on how to implement it?? about the hardware to use…i need your help..
    thank you

    December 13, 2007 at 11:41 pm
  • QUY says:

    I am a computer engineering student
    and have a graduation project which
    is remote control pc application
    with mobile phone using bluetooth technology.
    there are some programs on the internet but
    i need to source code and documantations,
    totarials, example videos about
    remote control with mobile phone software.
    My phone is NOKIA N72 and i use the
    java programming language or c#
    developer interface.
    please help me in this situation.

    thank you very much…

    take care…

    December 25, 2007 at 6:30 pm
  • QUY says:

    I am a computer engineering student
    and have a graduation project which
    is remote control pc application
    with mobile phone using bluetooth technology.
    there are some programs on the internet but
    i need to source code and documantations,
    totarials, example videos about
    remote control with mobile phone software.
    My phone is NOKIA N72 and i use the
    java programming language or c#
    developer interface.
    please help me in this situation.

    thank you very much…

    take care…
    send me :

    December 25, 2007 at 6:31 pm
  • Aslam says:

    I am very much interested in the Bluetooth based remote. I wanted to know if it was possible for me to see the entire code. Will it be compatible with Sony Ericson W700i..??

    Thank You

    January 7, 2008 at 11:15 am
  • Hester says:


    I am doing a project on this software too, and i am really do not know how to start. Are you able to send me the whole software??

    Is it freeware?

    Please reply soon.. =)

    January 20, 2008 at 8:26 pm
  • dhanajay says:

    Hi people …im doing bluetooth remote control for pc as my final year project ….i had only little success with it now am stuck so if any one has the code could u pleaseeeee send it …I would be really greatful if anyone could send it…

    thanking u in advance :-

    February 26, 2008 at 10:02 am
  • iZoC says:

    can i have a full detail and the source code???
    because im very interest in this…..even i finish my fyp already….

    thank u very much….

    April 16, 2008 at 10:14 am
  • divya says:

    hae even i m final year BE student….can i plz get the code n the documentation ….it will b a great help…

    April 21, 2008 at 10:42 am
  • Laureniu says:

    The code will not be made public, yet!
    Answers for your comments will be send from my personal email address .. Thank you!

    April 21, 2008 at 3:17 pm
  • sandesh says:

    Hello, could i possibly get the full source code?
    Thank you.

    May 10, 2008 at 9:10 am
  • dennis says:

    Hello, may i get the full source code and documentation?
    Actually I’m a Mobile Computing student, and i have one project also need to develop the program almost similar above program and i have face some problem on it, so i need some example source code and documentation to refer on it. so i hope you can give me some helping on it.


    June 20, 2008 at 8:21 pm
  • darshana says:

    May I please get the full source code of this project as i am stuck with a problem in my project which is used to develop same kind of application.
    Hoping a positive response


    June 20, 2010 at 5:48 pm
    • Laurentiu Ciovica says:


      As i said in a previous comment the code is not available for download.
      Thank you for your understanding.
      Please write me an email with your problem and we can find a solution.

      Thank you!

      June 22, 2010 at 8:12 am
  • sanket says:

    can i get more projects

    June 28, 2010 at 8:50 am
  • Rajkumar Pomaji says:

    Please send me anyone if you have got the code for this project in either java or .net

    on my below id , I require it for my M.Sc CS Last year. or

    December 20, 2011 at 10:06 pm

Comments are closed.

By continuing to use the site, you agree to the use of cookies. More information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.