closeProfileProxy没有断开我的A2DP蓝牙连接,不确定原因



我使用a2dp配置文件连接到蓝牙设备。这部分工作正常,但到了断开连接的时候,所有预期的代码都被访问了,但设备没有断开连接,我不确定我做错了什么。这是我的断开代码:

public void disconnectFromOther(BluetoothDevice device) {
BluetoothProfile.ServiceListener serviceListener =
new BluetoothProfile.ServiceListener() {
@Override
public void onServiceDisconnected(int profile) {
}
public void onServiceConnected(int profile, BluetoothProfile proxy) {
Method disconnect;
try {
disconnect = a2dp.getClass()
.getMethod("disconnect", BluetoothDevice.class);
disconnect.setAccessible(true);
disconnect.invoke(proxy, device);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
BluetoothAdapter.getDefaultAdapter().closeProfileProxy(profile, proxy);
}
};
BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, serviceListener, BluetoothProfile.A2DP);
}

编辑:我现在也尝试了BluetoothGatt,但我仍然无法断开我的设备。

原来Headset的第二个配置文件(BluetoothProfile.Headset(也被打开了,我在logcat输出中发现了它。关闭该配置文件和我的a2dp配置文件关闭了连接。

最新更新