summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/bluetooth/map/BluetoothMapMasInstance.java12
-rw-r--r--src/com/android/bluetooth/opp/BluetoothOppService.java31
-rw-r--r--src/com/android/bluetooth/sap/SapService.java12
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 cc9f6baec..ec39e6e32 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 584d7ef00..79f561f93 100644
--- a/src/com/android/bluetooth/sap/SapService.java
+++ b/src/com/android/bluetooth/sap/SapService.java
@@ -152,9 +152,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,
@@ -730,9 +732,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) {