diff options
| author | fredc <fredc@broadcom.com> | 2012-04-12 00:02:00 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-07-16 21:20:54 -0700 |
| commit | 0f42037eb7b5118015c2caca635538324ccf0ccf (patch) | |
| tree | 46a7ba36216a2cb617541ec68f18b413419e148f /core/java/android/bluetooth/BluetoothSocket.java | |
| parent | 919a4c6264b733585152ce1dc6f868c1093d368b (diff) | |
Non persistent adapter service
Change-Id: Ib13d5c77416e58161df0e04d7a15ec0dddbde8b5
Conflicts:
core/java/android/bluetooth/BluetoothInputDevice.java
Conflicts:
core/java/com/android/internal/app/ShutdownThread.java
services/java/com/android/server/SystemServer.java
Conflicts:
services/java/com/android/server/SystemServer.java
services/java/com/android/server/pm/ShutdownThread.java
Diffstat (limited to 'core/java/android/bluetooth/BluetoothSocket.java')
| -rw-r--r-- | core/java/android/bluetooth/BluetoothSocket.java | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/core/java/android/bluetooth/BluetoothSocket.java b/core/java/android/bluetooth/BluetoothSocket.java index 9b0e1cb2c13d..d37f2d53840d 100644 --- a/core/java/android/bluetooth/BluetoothSocket.java +++ b/core/java/android/bluetooth/BluetoothSocket.java @@ -102,7 +102,6 @@ public final class BluetoothSocket implements Closeable { private int mPort; /* RFCOMM channel or L2CAP psm */ private int mFd; private String mServiceName; - private static IBluetooth sBluetoothProxy; private static int PROXY_CONNECTION_TIMEOUT = 5000; private static int SOCK_SIGNAL_SIZE = 16; @@ -158,17 +157,6 @@ public final class BluetoothSocket implements Closeable { } mInputStream = new BluetoothInputStream(this); mOutputStream = new BluetoothOutputStream(this); - - if (sBluetoothProxy == null) { - synchronized (BluetoothSocket.class) { - if (sBluetoothProxy == null) { - IBinder b = ServiceManager.getService(BluetoothAdapter.BLUETOOTH_SERVICE); - if (b == null) - throw new RuntimeException("Bluetooth service not available"); - sBluetoothProxy = IBluetooth.Stub.asInterface(b); - } - } - } } private BluetoothSocket(BluetoothSocket s) { mUuid = s.mUuid; @@ -297,8 +285,9 @@ public final class BluetoothSocket implements Closeable { try { // TODO(BT) derive flag from auth and encrypt if (mSocketState == SocketState.CLOSED) throw new IOException("socket closed"); - - mPfd = sBluetoothProxy.connectSocket(mDevice, mType, + IBluetooth bluetoothProxy = BluetoothAdapter.getDefaultAdapter().getBluetoothService(); + if (bluetoothProxy == null) throw new IOException("Bluetooth is off"); + mPfd = bluetoothProxy.connectSocket(mDevice, mType, mUuid, mPort, getSecurityFlags()); synchronized(this) { @@ -333,8 +322,13 @@ public final class BluetoothSocket implements Closeable { /*package*/ int bindListen() { int ret; if (mSocketState == SocketState.CLOSED) return EBADFD; + IBluetooth bluetoothProxy = BluetoothAdapter.getDefaultAdapter().getBluetoothService(); + if (bluetoothProxy == null) { + Log.e(TAG, "bindListen fail, reason: bluetooth is off"); + return -1; + } try { - mPfd = sBluetoothProxy.createSocketChannel(mType, mServiceName, + mPfd = bluetoothProxy.createSocketChannel(mType, mServiceName, mUuid, mPort, getSecurityFlags()); } catch (RemoteException e) { Log.e(TAG, Log.getStackTraceString(new Throwable())); |
