diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2016-02-25 14:48:34 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-02-25 14:48:34 -0800 |
commit | 2e6201061cf74cb776c6fa36accead920f3b7b1e (patch) | |
tree | 015f182e5608b68ec724642c5bf8a0e602743078 | |
parent | 9c989475bd7353dd5862ef0f53fdcac57b049044 (diff) | |
parent | 09bc94ec979e1954dabaf0750aae838c75daaba5 (diff) | |
download | android_packages_apps_Bluetooth-2e6201061cf74cb776c6fa36accead920f3b7b1e.tar.gz android_packages_apps_Bluetooth-2e6201061cf74cb776c6fa36accead920f3b7b1e.tar.bz2 android_packages_apps_Bluetooth-2e6201061cf74cb776c6fa36accead920f3b7b1e.zip |
Merge "OPP: Initialize obex socket listeners while starting Listening"
-rw-r--r-- | src/com/android/bluetooth/map/BluetoothMapMasInstance.java | 12 | ||||
-rw-r--r-- | src/com/android/bluetooth/opp/BluetoothOppService.java | 31 | ||||
-rw-r--r-- | src/com/android/bluetooth/sap/SapService.java | 12 |
3 files changed, 39 insertions, 16 deletions
diff --git a/src/com/android/bluetooth/map/BluetoothMapMasInstance.java b/src/com/android/bluetooth/map/BluetoothMapMasInstance.java index b00cc2c93..4cc371883 100644 --- a/src/com/android/bluetooth/map/BluetoothMapMasInstance.java +++ b/src/com/android/bluetooth/map/BluetoothMapMasInstance.java @@ -277,10 +277,12 @@ public class BluetoothMapMasInstance implements IObexConnectionHandler { Log.e(TAG, "Failed to start the listeners"); return; } - if (mSdpHandle >= 0 && SdpManager.getDefaultManager() != null) { + if (mAdapter != null && mSdpHandle >= 0 && + SdpManager.getDefaultManager() != null) { if(V) Log.d(TAG, "Removing SDP record for MAS instance: " + mMasInstanceId + " Object reference: " + this + "SDP handle: " + mSdpHandle); - SdpManager.getDefaultManager().removeSdpRecord(mSdpHandle); + boolean status = SdpManager.getDefaultManager().removeSdpRecord(mSdpHandle); + Log.d(TAG, "RemoveSDPrecord returns " + status); mSdpHandle = -1; } mSdpHandle = createMasSdpRecord(mServerSockets.getRfcommChannel(), @@ -408,10 +410,12 @@ public class BluetoothMapMasInstance implements IObexConnectionHandler { mObserver.deinit(); mObserver = null; } - if (mSdpHandle >= 0 && SdpManager.getDefaultManager() != null) { + if (mAdapter != null && mSdpHandle >= 0 && + SdpManager.getDefaultManager() != null) { if(V) Log.d(TAG, "Removing SDP record for MAS instance: " + mMasInstanceId + " Object reference: " + this + "SDP handle: " + mSdpHandle); - SdpManager.getDefaultManager().removeSdpRecord(mSdpHandle); + boolean status = SdpManager.getDefaultManager().removeSdpRecord(mSdpHandle); + Log.d(TAG, "RemoveSDPrecord returns " + status); mSdpHandle = -1; } diff --git a/src/com/android/bluetooth/opp/BluetoothOppService.java b/src/com/android/bluetooth/opp/BluetoothOppService.java index e7c5dd9ba..10437fb30 100644 --- a/src/com/android/bluetooth/opp/BluetoothOppService.java +++ b/src/com/android/bluetooth/opp/BluetoothOppService.java @@ -160,8 +160,6 @@ public class BluetoothOppService extends Service { super.onCreate(); if (V) Log.v(TAG, "onCreate"); mAdapter = BluetoothAdapter.getDefaultAdapter(); - mSocketListener = new BluetoothOppRfcommListener(mAdapter); - mL2cSocketListener = new BluetoothOppL2capListener(mAdapter); mShares = Lists.newArrayList(); mBatchs = Lists.newArrayList(); mObserver = new BluetoothShareContentObserver(); @@ -235,17 +233,21 @@ public class BluetoothOppService extends Service { public void handleMessage(Message msg) { switch (msg.what) { case STOP_LISTENER: - if (mOppSdpHandle >= 0 && + if (mAdapter != null && mOppSdpHandle >= 0 && SdpManager.getDefaultManager() != null) { if (D) Log.d(TAG, "Removing SDP record"); - SdpManager.getDefaultManager().removeSdpRecord(mOppSdpHandle); + boolean status = SdpManager.getDefaultManager(). + removeSdpRecord(mOppSdpHandle); + Log.d(TAG, "RemoveSDPrecord returns " + status); mOppSdpHandle = -1; } if(mSocketListener != null){ mSocketListener.stop(); + mSocketListener = null; } if(mL2cSocketListener != null){ mL2cSocketListener.stop(); + mL2cSocketListener = null; } mListenStarted = false; //Stop Active INBOUND Transfer @@ -360,8 +362,20 @@ public class BluetoothOppService extends Service { private void startSocketListener() { - if (V) Log.v(TAG, "start Socket Listeners"); + Log.d(TAG, "start Socket Listeners"); + if(mSocketListener != null){ + Log.d(TAG, "rfcomm listener active, stopping it"); + mSocketListener.stop(); + mSocketListener = null; + } + if(mL2cSocketListener != null){ + Log.d(TAG, "l2cap listener active, stopping it"); + mL2cSocketListener.stop(); + mL2cSocketListener = null; + } + mSocketListener = new BluetoothOppRfcommListener(mAdapter); + mL2cSocketListener = new BluetoothOppL2capListener(mAdapter); if (mSocketListener != null && mL2cSocketListener != null) { if ( ( mSocketListener.openRfcommSocket() != null) && @@ -387,6 +401,8 @@ public class BluetoothOppService extends Service { unregisterReceiver(mBluetoothReceiver); mSocketListener.stop(); mL2cSocketListener.stop(); + mSocketListener = null; + mL2cSocketListener = null; if(mBatchs != null) { mBatchs.clear(); @@ -415,12 +431,11 @@ public class BluetoothOppService extends Service { if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { switch (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR)) { case BluetoothAdapter.STATE_ON: - if (V) Log.v(TAG, - "Receiver BLUETOOTH_STATE_CHANGED_ACTION, BLUETOOTH_STATE_ON"); + Log.d(TAG, "Receiver BLUETOOTH_STATE_CHANGED_ACTION, STATE_ON"); startSocketListener(); break; case BluetoothAdapter.STATE_TURNING_OFF: - if (V) Log.v(TAG, "Receiver DISABLED_ACTION "); + Log.d(TAG, "Receiver BLUETOOTH_STATE_CHANGED_ACTION, STATE_TURNING_OFF"); //FIX: Don't block main thread /* mSocketListener.stop(); diff --git a/src/com/android/bluetooth/sap/SapService.java b/src/com/android/bluetooth/sap/SapService.java index 4bfac9877..9199d7fd1 100644 --- a/src/com/android/bluetooth/sap/SapService.java +++ b/src/com/android/bluetooth/sap/SapService.java @@ -153,9 +153,11 @@ public class SapService extends ProfileService { // for multiple connections. mServerSocket = mAdapter.listenUsingRfcommOn( BluetoothAdapter.SOCKET_CHANNEL_AUTO_STATIC_NO_SDP, true, true); - if (mSdpHandle >= 0 && SdpManager.getDefaultManager() != null) { + if (mAdapter != null && mSdpHandle >= 0 && + SdpManager.getDefaultManager() != null) { if (DEBUG) Log.d(TAG, "Removing SDP record"); - SdpManager.getDefaultManager().removeSdpRecord(mSdpHandle); + boolean status = SdpManager.getDefaultManager().removeSdpRecord(mSdpHandle); + Log.d(TAG, "RemoveSDPrecord returns " + status); mSdpHandle = -1; } mSdpHandle = SdpManager.getDefaultManager().createSapsRecord(SDP_SAP_SERVICE_NAME, @@ -733,9 +735,11 @@ public class SapService extends ProfileService { mIsWaitingAuthorization = false; cancelUserTimeoutAlarm(); } - if (mSdpHandle >= 0 && SdpManager.getDefaultManager() != null) { + if (mAdapter != null && mSdpHandle >= 0 && + SdpManager.getDefaultManager() != null) { if (DEBUG) Log.d(TAG, "Removing SDP record"); - SdpManager.getDefaultManager().removeSdpRecord(mSdpHandle); + boolean status = SdpManager.getDefaultManager().removeSdpRecord(mSdpHandle); + Log.d(TAG, "RemoveSDPrecord returns " + status); mSdpHandle = -1; } if (mSessionStatusHandler != null) { |