1

我有一个蓝牙耳机设备连接到运行 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存在问题),虽然状态栏中的蓝牙图标指示耳机已连接,但当我进入蓝牙设置屏幕时,我根本看不到耳机。

任何智慧之言将不胜感激。

4

0 回答 0