summaryrefslogtreecommitdiff
path: root/core/java/android/bluetooth/BluetoothSocket.java
diff options
context:
space:
mode:
authorfredc <fredc@broadcom.com>2012-04-12 00:02:00 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-07-16 21:20:54 -0700
commit0f42037eb7b5118015c2caca635538324ccf0ccf (patch)
tree46a7ba36216a2cb617541ec68f18b413419e148f /core/java/android/bluetooth/BluetoothSocket.java
parent919a4c6264b733585152ce1dc6f868c1093d368b (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.java24
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()));