From a23a61208691239606861bde5d705fa93525ac22 Mon Sep 17 00:00:00 2001 From: Francesco Zanitti Date: Sun, 21 Mar 2010 15:04:17 +0100 Subject: [PATCH] Improved support BluetoothDevice now implements Parcelable Initial client implementation for the Bluetooth Emulator Server will give the options of supports custom applications --- README.md | 42 +++-- .../dist-shared/btsim.jar | Bin 25974 -> 29661 bytes .../android/bluetooth/BluetoothAdapter.java | 1 - .../itu/android/bluetooth/BluetoothClass.java | 32 +++- .../android/bluetooth/BluetoothDevice.java | 53 ++++-- .../bluetooth/BluetoothServerSocket.java | 24 +-- .../itu/android/btemu/service/BTService.java | 32 +++- .../dk/itu/btemu/client/BtEmuClient.java | 171 ++++++++++++++++++ btsim-server/dist/btsimserver.jar | Bin 143045 -> 21306 bytes btsim-server/src/dk/itu/btemu/Server.java | 2 +- btsim-server/src/dk/itu/btemu/cmd/Join.java | 11 +- .../src/dk/itu/btemu/state/Device.java | 8 + .../src/dk/itu/btemu/state/Service.java | 11 +- 13 files changed, 327 insertions(+), 60 deletions(-) create mode 100644 btsim-server/client-src/dk/itu/btemu/client/BtEmuClient.java diff --git a/README.md b/README.md index 502c0d5..d8f8f4d 100644 --- a/README.md +++ b/README.md @@ -7,17 +7,7 @@ As for now, you can communicate between different emulators using the RFComm pro What you need to do in order to use the simulator instead of the android API, is to change the import from `android.bluetooth` to `dk.itu.android.bluetooth` (and also add the `INTERNET` permission in the android manifest file). -There are two slight modifies to use the simulator: - - - call `getSerializableExtra` instead of `getParcelableExtra` to get a `BluetoothDevice` from the discovery intents: - - `BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);` - - you'll need to call - - `BluetoothDevice device = intent.getSerializableExtra(BluetoothDevice.EXTRA_DEVICE);` - - ..this is just because I didn't had time to look at how the parcel-stuff works. If you want, feel free to make the necessary modifications and push a commit ;) +There is a slight modification to the code, in order to use the simulator: - call `BluetoothAdapter.SetContext(this);` at some point (the `onCreate` method is fine) in your activity/service. @@ -28,7 +18,7 @@ You will have to follow some steps: - download everything in this repository - compile and install into at least 2 android emulators the *android-bt-simulator* application - a precompiled version of the application is provided in the *dist* directory - - there are 3 source dicrectories, `src`, `src-sysactivities` and `src-testapp`. The application need all of them, but for the library jar you just need to compile the main one (`src`). The jar library is provided as convenience in the `dist-shared` directory + - there are 3 source directories, `src`, `src-sysactivities` and `src-testapp`. The application need all of them, but for the library jar you just need to compile the main one (`src`). The jar library is provided as convenience in the `dist-shared` directory - compile the *btsim-server* and run it. - there is an already precompiled jar in *dist*, execute `java -jar btsimserver.jar --help` to see some options (if you don't have the `adb` command in your path, you will need to set the `adb.path` variable) @@ -45,4 +35,30 @@ My preferred workflow, at this point, is: Then, depending on your needs, when you want to deploy the application on an actual device, you will need to delete or comment the `SetContext` call (as this will not compile, since it is not part of the android bluetooth api, but just a custom call for the simulator) and delete and re-import all the bluetooth stuff (this time using the `android.bluetooth` classes). -I hope this will be useful for somebody, I know that it implements just a subset of the API and it is not possible to put into play different devices than the emulators themselves, but until we got something in the android emulator itself, this is what we got :D \ No newline at end of file +I hope this will be useful for somebody, I know that it implements just a subset of the API and it is not possible to put into play different devices than the emulators themselves, but until we got something in the android emulator itself, this is what we got :D + +## Adding dummy devices + +You can add dummy devices to the server, so that you can check if the discovery phase works. This involves communicating directly with the bluetooth emulator server, which accept text-based command. + +First of all, fire up a terminal and telnet to localhost, port 8199: + + telnet localhost 8199 + +when the terminal prompt, use the following syntax: + + 0]tcp.address=10.0.2.2¬.android.emulator=true&bt.address=
&device.name=] + +e.g. : + + 0]tcp.address=10.0.2.2¬.android.emulator=true&bt.address=00:11:22:AA:BB:CC&device.name=Dummy1] + +In general, the bluetooth emulator server accepts commands on the form: + + ]=&...] + +Another useful command is the discovery one, if you want to know which devices are listed in the server, telnet and enter: + + 2]] + +then the list of the devices and relative registered services will appear. \ No newline at end of file diff --git a/android-btsim-application/dist-shared/btsim.jar b/android-btsim-application/dist-shared/btsim.jar index 5d9790884bd0a945492bde1ff4cca96d04a0dc21..9cc6063c9a8c549d74200881f0934b8fb879324a 100644 GIT binary patch delta 16175 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 CREATOR = new Parcelable.Creator() { + @Override + public BluetoothClass createFromParcel(Parcel source) { + BluetoothClass out = new BluetoothClass(); + out.dClass = source.readInt(); + out.mdClass = source.readInt(); + out.services = source.createIntArray(); + return out; + } + @Override + public BluetoothClass[] newArray(int size) { + return new BluetoothClass[size]; + } + }; public static class Device { public static class Major { @@ -17,10 +31,6 @@ public static class Service { public static final int NETWORKING = android.bluetooth.BluetoothClass.Service.NETWORKING; } - /** - * - */ - private static final long serialVersionUID = 1L; int dClass; int mdClass; int[] services; @@ -56,10 +66,14 @@ public boolean hasService(int service) { return false; } public int hashCode() { - return -1; + int out = dClass+mdClass; + for(int i : services) { out+=i; } + return out; } public void writeToParcel(Parcel out, int flags) { - //not supported? + out.writeInt(dClass); + out.writeInt(mdClass); + out.writeIntArray(services); } // diff --git a/android-btsim-application/src/dk/itu/android/bluetooth/BluetoothDevice.java b/android-btsim-application/src/dk/itu/android/bluetooth/BluetoothDevice.java index ec554e4..8356732 100644 --- a/android-btsim-application/src/dk/itu/android/bluetooth/BluetoothDevice.java +++ b/android-btsim-application/src/dk/itu/android/bluetooth/BluetoothDevice.java @@ -1,16 +1,42 @@ package dk.itu.android.bluetooth; import java.io.IOException; -import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.UUID; import android.os.Parcel; +import android.os.Parcelable; import android.util.Log; import dk.itu.android.btemu.service.BTService; -public class BluetoothDevice implements Serializable { +public class BluetoothDevice implements Parcelable { + + public static Parcelable.Creator CREATOR = new Parcelable.Creator() { + @Override + public BluetoothDevice createFromParcel(Parcel source) { + BluetoothDevice out = new BluetoothDevice(); + out.addr = source.readString(); + out.tcpAddr = source.readString(); + out.name = source.readString(); + Parcelable[] tmp = source.readParcelableArray(BluetoothDevice.class.getClassLoader()); + for(Parcelable s : tmp) { + out.services.add((BTService)s); + } + return out; + } + @Override + public BluetoothDevice[] newArray(int size) { + return new BluetoothDevice[size]; + } + }; + public void writeToParcel(Parcel out, int flags) { + out.writeString(addr); + out.writeString(tcpAddr); + out.writeString(name); + out.writeParcelableArray(services.toArray(new BTService[]{}), 0); + } + //constants public static final String ACTION_ACL_CONNECTED = "dk.android.bluetooth.device.action.ACL_CONNECTED"; @@ -33,11 +59,6 @@ public class BluetoothDevice implements Serializable { public static final int ERROR = 0x80000000; // - /** - * - */ - private static final long serialVersionUID = 1L; - // public BluetoothSocket createRfcommSocketToServiceRecord(UUID uuid) throws IOException { String uuids = uuid.toString(); @@ -48,7 +69,7 @@ public BluetoothSocket createRfcommSocketToServiceRecord(UUID uuid) throws IOExc } } - return null; + throw new IOException("sdp serivce discovery failed: service not found"); } public int describeContents(){ return -1; @@ -58,20 +79,17 @@ public boolean equals(Object o) { } public String getAddress(){ return addr; } public BluetoothClass getBluetoothClass(){ return btClass; } - int getBondState() { + public int getBondState() { return BOND_NONE; } public String getName() { return name; } public int hashCode() { - return -1; + return addr.hashCode(); } public String toString() { - return ""; - } - public void writeToParcel(Parcel out, int flags) { - //not supported? + return "BluetoothDevice " + addr; } // @@ -95,6 +113,13 @@ public BluetoothDevice(String btAddr, String tcpAddr) { android.bluetooth.BluetoothClass.Device.Major.PHONE, android.bluetooth.BluetoothClass.Service.NETWORKING); } + private BluetoothDevice() { + this.services = new ArrayList(); + this.btClass = new BluetoothClass( + android.bluetooth.BluetoothClass.Device.PHONE_SMART, + android.bluetooth.BluetoothClass.Device.Major.PHONE, + android.bluetooth.BluetoothClass.Service.NETWORKING); + } /** * THIS IS NOT PART OF THE ANDROID PLATFORM, IGNORE THIS METHOD! diff --git a/android-btsim-application/src/dk/itu/android/bluetooth/BluetoothServerSocket.java b/android-btsim-application/src/dk/itu/android/bluetooth/BluetoothServerSocket.java index 4e9e598..8117722 100644 --- a/android-btsim-application/src/dk/itu/android/bluetooth/BluetoothServerSocket.java +++ b/android-btsim-application/src/dk/itu/android/bluetooth/BluetoothServerSocket.java @@ -42,19 +42,21 @@ private BluetoothSocket createBTSocket(Socket s) throws IOException { InputStream is = s.getInputStream(); Log.i(TAG, "creating btsocket, reading btaddr..."); int read; - byte[] buf = new byte[100]; - read = is.read(buf); - String btaddr = new String(buf,0,read); + byte[] buf = new byte[25]; + + + + int idx = 0; + do { + read = is.read(); + buf[idx] = (byte)read; + idx++; + } while( '\n' != read ); + + String btaddr = new String(buf,0,idx-1); -// byte read; -// InputStreamReader isr = new InputStreamReader(is); -// int read; -// while('\n' != (char)(read=isr.read())) { -// sb.append((char)read); -// } -// String btaddr = sb.toString().trim(); Log.i(TAG, "received btaddr: " + btaddr); - BluetoothDevice d = emulator.lookupBT(btaddr); + BluetoothDevice d = emulator.lookupBT(btaddr.trim()); return new BluetoothSocket(s, d); } diff --git a/android-btsim-application/src/dk/itu/android/btemu/service/BTService.java b/android-btsim-application/src/dk/itu/android/btemu/service/BTService.java index f014ff5..d04d01b 100644 --- a/android-btsim-application/src/dk/itu/android/btemu/service/BTService.java +++ b/android-btsim-application/src/dk/itu/android/btemu/service/BTService.java @@ -1,13 +1,33 @@ package dk.itu.android.btemu.service; -import java.io.Serializable; +import android.os.Parcel; +import android.os.Parcelable; -public class BTService implements Serializable { +public class BTService implements Parcelable { - /** - * - */ - private static final long serialVersionUID = 1L; + public static Parcelable.Creator CREATOR = new Parcelable.Creator() { + @Override + public BTService createFromParcel(Parcel source) { + BTService out = new BTService(); + out.tcpPort = source.readInt(); + out.uuid = source.readString(); + return out; + } + @Override + public BTService[] newArray(int size) { + return new BTService[size]; + } + }; + + @Override + public int describeContents() { + return 0; + } + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeInt(tcpPort); + dest.writeString(uuid); + } int tcpPort; String uuid; diff --git a/btsim-server/client-src/dk/itu/btemu/client/BtEmuClient.java b/btsim-server/client-src/dk/itu/btemu/client/BtEmuClient.java new file mode 100644 index 0000000..39e4756 --- /dev/null +++ b/btsim-server/client-src/dk/itu/btemu/client/BtEmuClient.java @@ -0,0 +1,171 @@ +package dk.itu.btemu.client; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.Socket; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class BtEmuClient { + static final String UTF8 = "UTF-8"; + + static final int JOIN = 0; + static final int LEAVE = 1; + static final int DISCOVERY = 2; + static final int MODIFYSERVICE = 3; + + class Device { + String btAddr; + String ipAddr; + List services = new ArrayList(); + + public String getBtAddr() { + return btAddr; + } + public String getIpAddr() { + return ipAddr; + } + public List getServices() { + return services; + } + } + class Service { + String uuid; + int port; + + public int getPort() { + return port; + } + public String getUuid() { + return uuid; + } + } + + String fakeBluetoothAddress; + + String serverAddr; + int serverPort; + + Socket socket; + BufferedReader isReader; + OutputStream os; + Thread clientThread; + + boolean running = true; + + public BtEmuClient(String btAddr, String addr,int port) { + this.fakeBluetoothAddress = btAddr; + this.serverAddr = addr; + this.serverPort = port; + } + + public BtEmuClient(String btAddr) { + this(btAddr,"localhost",8199); + } + + public void start() { + try { + socket = new Socket(this.serverAddr,this.serverPort); + os = socket.getOutputStream(); + isReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("cannot connect to server!"); + } + } + public void stop() { + try { + socket.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void join() { + send( JOIN,stdCmd() ); + } + public void leave() { + send( LEAVE,stdCmd() ); + } + public void addService(String uuid,int port) { + modifyService(uuid,port,true); + } + public void removeService(String uuid) { + modifyService(uuid,0,false); + } + void log(String tag,String s){ + System.out.println(tag+"\n\t"+s); + } + private void modifyService(String uuid, int port, boolean added) { + Map m = stdCmd(); + m.put("type", added ? "added" : "removed"); + m.put("tcp.port", port+""); + m.put("service.uuid",uuid); + send( MODIFYSERVICE,m ); + } + public Set discovery() { + Set out = new HashSet(); + send( DISCOVERY,stdCmd() ); + + String line = null; + do { + try { + line = isReader.readLine(); + } catch (IOException e) { + e.printStackTrace(); + throw new RuntimeException("cannot read inputstream!"); + } + log("DISCOVERY_CMD", "device: " + line); + if(line==null) break; + + String[] parts = line.trim().split("--"); + Device d = new Device(); + d.btAddr = parts[0]; + d.ipAddr = parts[1]; + + if(parts.length>2) { + if(parts[2].length()>0) { + String[] sParts = parts[2].split("<><>"); + for(String p : sParts) { + String[] s = p.split("<>"); + Service srv = new Service(); + srv.uuid = s[0]; + srv.port = Integer.parseInt(s[1]); + d.services.add(srv); + } + } + } + out.add(d); + } while(line != null); + + return out; + } + + public Map stdCmd() { + Map out = new HashMap(); + out.put("bt.address", this.fakeBluetoothAddress); + out.put("tcp.address", "127.0.0.1"); + out.put("not.android.emulator", "true"); + return out; + } + + void send(int cmdType, Map command) { + try { + os.write( (cmdType+"]").getBytes(UTF8) ); + for(String k : command.keySet()) { + os.write( (k+"="+command.get(k)+"&").getBytes(UTF8) ); + } + os.write("]".getBytes(UTF8)); + os.flush(); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/btsim-server/dist/btsimserver.jar b/btsim-server/dist/btsimserver.jar index 7aaf1070371999c3acf4a33506e3ef853c77d1f1..1c1482b3a08ceb45abdd9889c5298441ef4f6f17 100644 GIT binary patch delta 4214 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 delta 126422 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

A*%tH}r3t<$k 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 params ) throws Exception { Device device = new Device(ipAddress, btAddress); State.getInstance().put(btAddress, device); - BTMacForwardingsChecker checker = new BTMacForwardingsChecker(); - System.out.println("running checker..."); - checker.run(); + + if(null == getParam("not.android.emulator")) { + BTMacForwardingsChecker checker = new BTMacForwardingsChecker(); + System.out.println("running checker..."); + checker.run(); + } else { + device.setAndroidEmulator(false); + } } @Override diff --git a/btsim-server/src/dk/itu/btemu/state/Device.java b/btsim-server/src/dk/itu/btemu/state/Device.java index d826ad6..13a40c9 100644 --- a/btsim-server/src/dk/itu/btemu/state/Device.java +++ b/btsim-server/src/dk/itu/btemu/state/Device.java @@ -7,6 +7,8 @@ public class Device { String ipAddr; String btAddr; + + boolean isAndroidEmulator = true; /** * The port at which is running the emulator @@ -51,4 +53,10 @@ public void setEmulatorPort(int emulatorPort) { public int getEmulatorPort() { return emulatorPort; } + public boolean isAndroidEmulator() { + return isAndroidEmulator; + } + public void setAndroidEmulator(boolean isAndroidEmulator) { + this.isAndroidEmulator = isAndroidEmulator; + } } diff --git a/btsim-server/src/dk/itu/btemu/state/Service.java b/btsim-server/src/dk/itu/btemu/state/Service.java index 44da5bc..6ef1dfb 100644 --- a/btsim-server/src/dk/itu/btemu/state/Service.java +++ b/btsim-server/src/dk/itu/btemu/state/Service.java @@ -19,8 +19,15 @@ public Service(String UUID, int tcpPort, Device device) { this.UUID = UUID; this.tcpPort = tcpPort; this.device = device; - this.hostPort = Server.next(); - createNetworkRedirection(); + + if(device.isAndroidEmulator()) { + this.hostPort = Server.next(); + createNetworkRedirection(); + } else { + System.out.println("not-android-emulator service"); + this.hostPort = tcpPort; + } + } private void createNetworkRedirection() { System.out.println("creating network forwarding from "+tcpPort+" to "+hostPort);