closeProfileProxy 没有断开我的 A2DP 蓝牙连接,不知道为什么
closeProfileProxy is not disconnecting my A2DP bluetooth connection, not sure why
我使用 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,但我仍然无法断开我的设备。
事实证明,耳机 (BluetoothProfile.HEADSET) 的第二个配置文件也被打开,我在 logcat 输出中发现了它。关闭该配置文件以及我的 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,但我仍然无法断开我的设备。
事实证明,耳机 (BluetoothProfile.HEADSET) 的第二个配置文件也被打开,我在 logcat 输出中发现了它。关闭该配置文件以及我的 a2dp 配置文件会关闭连接。