Use new bt api to set active device

Use setActiveDevice in BluetoothAdapter instead of profiles.

Fixes: 141582844
Test: manually
Change-Id: I92c89b8923875ea542326e154939d93b13e66ef2
This commit is contained in:
hughchen
2019-12-05 14:47:53 +08:00
parent e3ada502d1
commit e8a66a35c2
3 changed files with 22 additions and 9 deletions

View File

@@ -16,6 +16,7 @@
package com.android.settingslib.bluetooth;
import static android.bluetooth.BluetoothAdapter.ACTIVE_DEVICE_AUDIO;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
@@ -45,6 +46,7 @@ public class A2dpProfile implements LocalBluetoothProfile {
private boolean mIsProfileReady;
private final CachedBluetoothDeviceManager mDeviceManager;
private final BluetoothAdapter mBluetoothAdapter;
static final ParcelUuid[] SINK_UUIDS = {
BluetoothUuid.A2DP_SINK,
@@ -99,7 +101,8 @@ public class A2dpProfile implements LocalBluetoothProfile {
mContext = context;
mDeviceManager = deviceManager;
mProfileManager = profileManager;
BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new A2dpServiceListener(),
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mBluetoothAdapter.getProfileProxy(context, new A2dpServiceListener(),
BluetoothProfile.A2DP);
}
@@ -173,8 +176,10 @@ public class A2dpProfile implements LocalBluetoothProfile {
}
public boolean setActiveDevice(BluetoothDevice device) {
if (mService == null) return false;
return mService.setActiveDevice(device);
if (mBluetoothAdapter == null) {
return false;
}
return mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_AUDIO);
}
public BluetoothDevice getActiveDevice() {

View File

@@ -16,6 +16,7 @@
package com.android.settingslib.bluetooth;
import static android.bluetooth.BluetoothAdapter.ACTIVE_DEVICE_PHONE_CALL;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
@@ -45,6 +46,7 @@ public class HeadsetProfile implements LocalBluetoothProfile {
private final CachedBluetoothDeviceManager mDeviceManager;
private final LocalBluetoothProfileManager mProfileManager;
private final BluetoothAdapter mBluetoothAdapter;
static final ParcelUuid[] UUIDS = {
BluetoothUuid.HSP,
@@ -99,7 +101,8 @@ public class HeadsetProfile implements LocalBluetoothProfile {
LocalBluetoothProfileManager profileManager) {
mDeviceManager = deviceManager;
mProfileManager = profileManager;
BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new HeadsetServiceListener(),
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mBluetoothAdapter.getProfileProxy(context, new HeadsetServiceListener(),
BluetoothProfile.HEADSET);
}
@@ -134,10 +137,10 @@ public class HeadsetProfile implements LocalBluetoothProfile {
}
public boolean setActiveDevice(BluetoothDevice device) {
if (mService == null) {
if (mBluetoothAdapter == null) {
return false;
}
return mService.setActiveDevice(device);
return mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_PHONE_CALL);
}
public BluetoothDevice getActiveDevice() {

View File

@@ -16,6 +16,7 @@
package com.android.settingslib.bluetooth;
import static android.bluetooth.BluetoothAdapter.ACTIVE_DEVICE_ALL;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
@@ -45,6 +46,7 @@ public class HearingAidProfile implements LocalBluetoothProfile {
static final String NAME = "HearingAid";
private final LocalBluetoothProfileManager mProfileManager;
private final BluetoothAdapter mBluetoothAdapter;
// Order of this profile in device profiles list
private static final int ORDINAL = 1;
@@ -97,7 +99,8 @@ public class HearingAidProfile implements LocalBluetoothProfile {
mContext = context;
mDeviceManager = deviceManager;
mProfileManager = profileManager;
BluetoothAdapter.getDefaultAdapter().getProfileProxy(context,
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mBluetoothAdapter.getProfileProxy(context,
new HearingAidServiceListener(), BluetoothProfile.HEARING_AID);
}
@@ -171,8 +174,10 @@ public class HearingAidProfile implements LocalBluetoothProfile {
}
public boolean setActiveDevice(BluetoothDevice device) {
if (mService == null) return false;
return mService.setActiveDevice(device);
if (mBluetoothAdapter == null) {
return false;
}
return mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_ALL);
}
public List<BluetoothDevice> getActiveDevices() {