Как подключить два устройства Android с помощью профилей bluetooth a2dp и avrcp?

Я пытаюсь реализовать a2dp и avrcp между двумя устройствами Android, я не смог найти для этого подходящих ссылок. некоторые я нашел, но не так много полезно.

if (mBluetoothAdapter == null && !mBluetoothAdapter.isEnabled()) {
        Toast.makeText(this, "Bluetooth not enabled", Toast.LENGTH_SHORT).show();
        return;
    }


    mBluetoothAdapter.setName("MyGalaxy");
    mBluetoothAdapter.getProfileProxy(this, new BluetoothProfile.ServiceListener() {
        @Override
        public void onServiceConnected(int profile, BluetoothProfile proxy) {
            mA2DPSinkProxy = proxy;
            enableDiscoverable();
        }

        @Override
        public void onServiceDisconnected(int profile) {
        }
    }, A2DP_SINK_PROFILE);

profileManager = BluetoothProfileManager.getInstance();

    List<Integer> enabledProfiles = profileManager.getEnabledProfiles();
    String enabled = "";
    for (Integer profile : enabledProfiles) {
        enabled += ("" + profile + ", ");
    }
    Log.d(TAG, "Enabled Profiles - " + enabled);

    Log.d(TAG, "Enabling A2dp source mode.");
    List toEnable = Arrays.asList(BluetoothProfile.A2DP);
    List toDisable = Arrays.asList(A2DP_SINK_PROFILE, AVRCP_CONTROLLER_PROFILE);
    profileManager.enableAndDisableProfiles(toEnable, toDisable);

Я получил эту ошибку:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.bluetootha2dpeg1, PID: 30451
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/things/bluetooth/BluetoothProfileManager;
    at com.example.bluetootha2dpeg1.MainActivity.setupBluetoothProfiles(MainActivity.java:157)
    at com.example.bluetootha2dpeg1.MainActivity.initA2DPSink(MainActivity.java:145)
    at com.example.bluetootha2dpeg1.MainActivity.initBluetooth(MainActivity.java:70)
    at com.example.bluetootha2dpeg1.MainActivity.onCreate(MainActivity.java:58)

person Hari    schedule 16.08.2019    source источник


Ответы (1)


BluetoothProfileManager доступен только для устройств Android Things и не работает с телефонами и планшетами.

Другая проблема заключается в том, что Android-устройство работает как источник музыки, а не как приемник, т. Е. У него есть профиль источника a2dp, и вы не можете изменить его в своем приложении. Это возможно только путем изменения исходного кода Android.

Поэтому, если вы хотите, чтобы одно устройство Android работало как музыкальный приемник Bluetooth, вам нужно внести несколько изменений в AOSP.

person Artem Maslov    schedule 27.11.2019