diff options
author | Corey Garst <corey.garst@gmail.com> | 2012-09-12 21:41:17 -0400 |
---|---|---|
committer | Ricardo Cerqueira <cyanogenmod@cerqueira.org> | 2012-11-21 16:31:54 +0000 |
commit | 0e5fdcffdd1c3f1292a7cfa04660c966f70c883a (patch) | |
tree | 4afc7cd8c09d8c8701a1b64ec16f8beaaef73574 | |
parent | d39a1f8ba2a97d1cec59b5dc0edb7fa591c16507 (diff) | |
download | frameworks_base-0e5fdcffdd1c3f1292a7cfa04660c966f70c883a.zip frameworks_base-0e5fdcffdd1c3f1292a7cfa04660c966f70c883a.tar.gz frameworks_base-0e5fdcffdd1c3f1292a7cfa04660c966f70c883a.tar.bz2 |
Ported: Bluetooth Message Access Profile (MAP) from CM9
This was added to CM10 to restore message exchange capabilities with automotive systems.
Change-Id: Ib872bebc5c292b1f84c903b068e59b7eeca6d76f
-rw-r--r-- | core/java/android/bluetooth/BluetoothUuid.java | 14 | ||||
-rw-r--r-- | obex/javax/obex/ClientOperation.java | 12 | ||||
-rw-r--r-- | obex/javax/obex/Operation.java | 2 | ||||
-rw-r--r-- | obex/javax/obex/ServerOperation.java | 36 |
4 files changed, 51 insertions, 13 deletions
diff --git a/core/java/android/bluetooth/BluetoothUuid.java b/core/java/android/bluetooth/BluetoothUuid.java index 5962235..1a0bd02 100644 --- a/core/java/android/bluetooth/BluetoothUuid.java +++ b/core/java/android/bluetooth/BluetoothUuid.java @@ -56,6 +56,10 @@ public final class BluetoothUuid { ParcelUuid.fromString("00001105-0000-1000-8000-00805f9b34fb"); public static final ParcelUuid Hid = ParcelUuid.fromString("00001124-0000-1000-8000-00805f9b34fb"); + public static final ParcelUuid MessageAccessServer = + ParcelUuid.fromString("00001132-0000-1000-8000-00805f9b34fb"); + public static final ParcelUuid MessageNotificationServer = + ParcelUuid.fromString("00001133-0000-1000-8000-00805f9b34fb"); public static final ParcelUuid PANU = ParcelUuid.fromString("00001115-0000-1000-8000-00805F9B34FB"); public static final ParcelUuid NAP = @@ -67,7 +71,7 @@ public final class BluetoothUuid { public static final ParcelUuid[] RESERVED_UUIDS = { AudioSink, AudioSource, AdvAudioDist, HSP, Handsfree, AvrcpController, AvrcpTarget, - ObexObjectPush, PANU, NAP}; + ObexObjectPush, MessageAccessServer, MessageNotificationServer, PANU, NAP}; public static boolean isAudioSource(ParcelUuid uuid) { return uuid.equals(AudioSource); @@ -131,6 +135,14 @@ public final class BluetoothUuid { return false; } + public static boolean isMessageAccessServer(ParcelUuid uuid) { + return uuid.equals(MessageAccessServer); + } + + public static boolean isMessageNotificationServer(ParcelUuid uuid) { + return uuid.equals(MessageNotificationServer); + } + /** * Returns true if there any common ParcelUuids in uuidA and uuidB. * diff --git a/obex/javax/obex/ClientOperation.java b/obex/javax/obex/ClientOperation.java index 05b498c..2abddd9 100644 --- a/obex/javax/obex/ClientOperation.java +++ b/obex/javax/obex/ClientOperation.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008-2009, Motorola, Inc. + * Copyright (c) 2010-2011, Motorola, Inc. * * All rights reserved. * @@ -121,6 +121,12 @@ public final class ClientOperation implements Operation, BaseStream { (header).mAuthResp.length); } + if ((header).mConnectionID != null) { + mRequestHeader.mConnectionID = new byte[4]; + System.arraycopy((header).mConnectionID, 0, mRequestHeader.mConnectionID, 0, + 4); + + } } /** @@ -723,4 +729,8 @@ public final class ClientOperation implements Operation, BaseStream { } } } + + public void noEndofBody() { + + } } diff --git a/obex/javax/obex/Operation.java b/obex/javax/obex/Operation.java index 25656ed..c827749 100644 --- a/obex/javax/obex/Operation.java +++ b/obex/javax/obex/Operation.java @@ -175,6 +175,8 @@ public interface Operation { DataOutputStream openDataOutputStream() throws IOException; + void noEndofBody(); + void close() throws IOException; int getMaxPacketSize(); diff --git a/obex/javax/obex/ServerOperation.java b/obex/javax/obex/ServerOperation.java index d1476d2..a17226d 100644 --- a/obex/javax/obex/ServerOperation.java +++ b/obex/javax/obex/ServerOperation.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008-2009, Motorola, Inc. + * Copyright (c) 2010-2011, Motorola, Inc. * * All rights reserved. * @@ -88,6 +88,8 @@ public final class ServerOperation implements Operation, BaseStream { private boolean mHasBody; + private boolean mEndofBody = true; + /** * Creates new ServerOperation * @param p the parent that created this object @@ -364,24 +366,31 @@ public final class ServerOperation implements Operation, BaseStream { * (End of Body) otherwise, we need to send 0x48 (Body) */ if ((finalBitSet) || (mPrivateOutput.isClosed())) { - out.write(0x49); + if (mEndofBody) { + out.write((byte)0x49); + bodyLength += 3; + out.write((byte)(bodyLength >> 8)); + out.write((byte)bodyLength); + out.write(body); + } } else { out.write(0x48); + bodyLength += 3; + out.write((byte)(bodyLength >> 8)); + out.write((byte)bodyLength); + out.write(body); } - bodyLength += 3; - out.write((byte)(bodyLength >> 8)); - out.write((byte)bodyLength); - out.write(body); } } if ((finalBitSet) && (type == ResponseCodes.OBEX_HTTP_OK) && (orginalBodyLength <= 0)) { - out.write(0x49); - orginalBodyLength = 3; - out.write((byte)(orginalBodyLength >> 8)); - out.write((byte)orginalBodyLength); - + if (mEndofBody) { + out.write(0x49); + orginalBodyLength = 3; + out.write((byte)(orginalBodyLength >> 8)); + out.write((byte)orginalBodyLength); + } } mResponseSize = 3; @@ -711,4 +720,9 @@ public final class ServerOperation implements Operation, BaseStream { public void streamClosed(boolean inStream) throws IOException { } + + public void noEndofBody() { + mEndofBody = false; + } + } |