我有一个蓝牙耳机设备连接到运行 Android 5.0.1 的 Nexus 9。
我的应用程序正在运行以下代码,我在其中调用 getA2dpConnectedDevice() 来检查 A2DP 状态。我希望由于应用程序设备应该连接到 BluetoothProfile.ServiceListener().onServiceConnected 会触发的耳机,但它不会触发。
private void getA2dpConnectedDevice() {
// Establish connection to the proxy.
mBluetoothAdapter.getProfileProxy(this, mA2dpProfileListener,
BluetoothProfile.A2DP);
logAndPostMessage( "Requesting A2DP connection status");
}
private BluetoothProfile.ServiceListener mA2dpProfileListener = new BluetoothProfile.ServiceListener() {
public void onServiceConnected(int profile, BluetoothProfile proxy) {
if (profile == BluetoothProfile.A2DP) {
mBluetoothA2dp = (BluetoothA2dp) proxy;
ArrayList<BluetoothDevice> a2DPdevices = (ArrayList) mBluetoothA2dp
.getDevicesMatchingConnectionStates(new int[] { BluetoothA2dp.STATE_CONNECTED });
// if any connected devices, should only be one
if (a2DPdevices.size() > 0) {
addDeviceToDeviceMap(a2DPdevices.get(0), null);
// post connected msg
logAndPostMessage( "A2DP is connected. Fired A2DPStatusUpdate event");
post(new A2DPStatusUpdate(a2DPdevices.get(0),
BluetoothA2dp.STATE_CONNECTED));
getHeadsetConnectedDevice();
}
}
}
我认为上面的代码应该工作有问题吗?
奇怪的是(也许一个真正的线索是Android存在问题),虽然状态栏中的蓝牙图标指示耳机已连接,但当我进入蓝牙设置屏幕时,我根本看不到耳机。
任何智慧之言将不胜感激。