Loading android/app/src/com/android/bluetooth/hfp/HeadsetService.java +23 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,21 @@ public class HeadsetService extends ProfileService { return service.disconnectAudio(); } public void setAudioRouteAllowed(boolean allowed) { HeadsetService service = getService(); if (service == null) return; service.setAudioRouteAllowed(allowed); } public boolean getAudioRouteAllowed() { HeadsetService service = getService(); if (service != null) { return service.getAudioRouteAllowed(); } return false; } public boolean startScoUsingVirtualVoiceCall(BluetoothDevice device) { HeadsetService service = getService(); if (service == null) return false; Loading Loading @@ -448,6 +463,14 @@ public class HeadsetService extends ProfileService { return mStateMachine.getAudioState(device); } public void setAudioRouteAllowed(boolean allowed) { mStateMachine.setAudioRouteAllowed(allowed); } public boolean getAudioRouteAllowed() { return mStateMachine.getAudioRouteAllowed(); } boolean connectAudio() { // TODO(BT) BLUETOOTH or BLUETOOTH_ADMIN permission enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); Loading android/app/src/com/android/bluetooth/hfp/HeadsetStateMachine.java +12 −1 Original line number Diff line number Diff line Loading @@ -162,6 +162,9 @@ final class HeadsetStateMachine extends StateMachine { private IBluetoothHeadsetPhone mPhoneProxy; private boolean mNativeAvailable; // Indicates whether audio can be routed to the device. private boolean mAudioRouteAllowed = true; // mCurrentDevice is the device connected before the state changes // mTargetDevice is the device to be connected // mIncomingDevice is the device connecting to us, valid only in Pending state Loading Loading @@ -2153,6 +2156,14 @@ final class HeadsetStateMachine extends StateMachine { return false; } public void setAudioRouteAllowed(boolean allowed) { mAudioRouteAllowed = allowed; } public boolean getAudioRouteAllowed() { return mAudioRouteAllowed; } int getAudioState(BluetoothDevice device) { synchronized(this) { if (mConnectedDevicesList.size() == 0) { Loading Loading @@ -3292,7 +3303,7 @@ final class HeadsetStateMachine extends StateMachine { // Accept incoming SCO only when there is active call, VR activated, // active VOIP call private boolean isScoAcceptable() { return (mVoiceRecognitionStarted || isInCall()); return mAudioRouteAllowed && (mVoiceRecognitionStarted || isInCall()); } boolean isConnected() { Loading Loading
android/app/src/com/android/bluetooth/hfp/HeadsetService.java +23 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,21 @@ public class HeadsetService extends ProfileService { return service.disconnectAudio(); } public void setAudioRouteAllowed(boolean allowed) { HeadsetService service = getService(); if (service == null) return; service.setAudioRouteAllowed(allowed); } public boolean getAudioRouteAllowed() { HeadsetService service = getService(); if (service != null) { return service.getAudioRouteAllowed(); } return false; } public boolean startScoUsingVirtualVoiceCall(BluetoothDevice device) { HeadsetService service = getService(); if (service == null) return false; Loading Loading @@ -448,6 +463,14 @@ public class HeadsetService extends ProfileService { return mStateMachine.getAudioState(device); } public void setAudioRouteAllowed(boolean allowed) { mStateMachine.setAudioRouteAllowed(allowed); } public boolean getAudioRouteAllowed() { return mStateMachine.getAudioRouteAllowed(); } boolean connectAudio() { // TODO(BT) BLUETOOTH or BLUETOOTH_ADMIN permission enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); Loading
android/app/src/com/android/bluetooth/hfp/HeadsetStateMachine.java +12 −1 Original line number Diff line number Diff line Loading @@ -162,6 +162,9 @@ final class HeadsetStateMachine extends StateMachine { private IBluetoothHeadsetPhone mPhoneProxy; private boolean mNativeAvailable; // Indicates whether audio can be routed to the device. private boolean mAudioRouteAllowed = true; // mCurrentDevice is the device connected before the state changes // mTargetDevice is the device to be connected // mIncomingDevice is the device connecting to us, valid only in Pending state Loading Loading @@ -2153,6 +2156,14 @@ final class HeadsetStateMachine extends StateMachine { return false; } public void setAudioRouteAllowed(boolean allowed) { mAudioRouteAllowed = allowed; } public boolean getAudioRouteAllowed() { return mAudioRouteAllowed; } int getAudioState(BluetoothDevice device) { synchronized(this) { if (mConnectedDevicesList.size() == 0) { Loading Loading @@ -3292,7 +3303,7 @@ final class HeadsetStateMachine extends StateMachine { // Accept incoming SCO only when there is active call, VR activated, // active VOIP call private boolean isScoAcceptable() { return (mVoiceRecognitionStarted || isInCall()); return mAudioRouteAllowed && (mVoiceRecognitionStarted || isInCall()); } boolean isConnected() { Loading