Merge "MAP: CleanUp for SDP record in MAP Service shutdown"
diff --git a/src/com/android/bluetooth/map/BluetoothMapMasInstance.java b/src/com/android/bluetooth/map/BluetoothMapMasInstance.java
index 0da7292..0dda44b 100644
--- a/src/com/android/bluetooth/map/BluetoothMapMasInstance.java
+++ b/src/com/android/bluetooth/map/BluetoothMapMasInstance.java
@@ -130,6 +130,17 @@
init();
}
+ private void removeSdpRecord() {
+ 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);
+ boolean status = SdpManager.getDefaultManager().removeSdpRecord(mSdpHandle);
+ Log.d(TAG, "RemoveSDPrecord returns " + status);
+ mSdpHandle = -1;
+ }
+ }
+
/* Needed only for test */
protected BluetoothMapMasInstance() {
TAG = "BluetoothMapMasInstance" + sInstanceCounter++;
@@ -277,11 +288,7 @@
Log.e(TAG, "Failed to start the listeners");
return;
}
- if(mSdpHandle >= 0) {
- SdpManager.getDefaultManager().removeSdpRecord(mSdpHandle);
- if(V) Log.d(TAG, "Removing SDP record for MAS instance: " + mMasInstanceId +
- " Object reference: " + this + "SDP handle: " + mSdpHandle);
- }
+ removeSdpRecord();
mSdpHandle = createMasSdpRecord(mServerSockets.getRfcommChannel(),
mServerSockets.getL2capPsm());
// Here we might have changed crucial data, hence reset DB identifier
@@ -399,6 +406,8 @@
mObserver = null;
}
+ removeSdpRecord();
+
closeConnectionSocket();
closeServerSockets(true);