Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Alternar dispositivo A2DP (Android)

Tengo dos dispositivos bluetooth emparejados (la cabeza-unidad de mi coche para el audio del teléfono y un receptor separado del bluetooth para A2DP). En mi teléfono hay una casilla de verificación para "Usar para audio de medios" que tengo que conmutar manualmente para mi salida A2DP para ir a los altavoces de mi coche. Mi objetivo es alternar esto de forma programática.

Intenté usar la clase de AudioManager con el setBluetoothA2dpOn obsoleto y el setBluetoothScoOn pero ninguno parecía tener efecto. Pude conseguir una lista de los dispositivos emparejados del bluetooth y conseguir una manija a la conexión que quisiera cambiar pero no podía parecer conseguirla absolutamente a la derecha. También intenté conseguir el adaptador del bluetooth del defecto y después usar el getProfileProxy pero siento como que estoy ladrando encima del árbol incorrecto allí.

  • Cómo habilitar la funcionalidad de receptor A2DP en Android?
  • ¿Cómo transmitir audio desde un dispositivo Android a otro dispositivo Android a través de Bluetooth?
  • Enviar información de las pistas a través de A2DP / AVRCP
  • Flujo de audio Bluetooth entre dispositivos Android
  • ¿Cómo puedo activar la nueva función Bluetooth A2DP Sink introducida en Lollipop?
  • Cómo modificar la pila Bluetooth de Android para habilitar el fregadero A2dp
  • ¿Puede alguien señalarme en la dirección correcta? Básicamente todo lo que quiero hacer es el equivalente a comprobar que "Utilice para el audio de los medios" cuadro.

  • Error de depuración de código nativo en android bajo eclipse
  • Cómo cerrar la actividad con el teclado del software después de presionar BACK?
  • Cómo agregar funcionalidad de flecha de botón Volver en barra de navegación
  • Alinear el diseño de dos botones izquierdo y derecho en Android
  • Cómo cambiar imágenes en imageView después de algún intervalo
  • ¿Cuál es el tamaño, en píxeles, de AdSize.BANNER?
  • 2 Solutions collect form web for “Alternar dispositivo A2DP (Android)”

    Hace poco tiempo tuve un problema similar al intentar conectar un dispositivo bluetooth al teléfono android. Aunque su perfil de dispositivo es diferente, creo que la solución es la misma.

    Primero usted necesita crear un paquete en su proyecto llamado android.bluetooth y poner el siguiente IBluetoothA2dp.aidl allí:

     package android.bluetooth; import android.bluetooth.BluetoothDevice; /** * System private API for Bluetooth A2DP service * * {@hide} */ interface IBluetoothA2dp { boolean connectSink(in BluetoothDevice device); boolean disconnectSink(in BluetoothDevice device); boolean suspendSink(in BluetoothDevice device); boolean resumeSink(in BluetoothDevice device); BluetoothDevice[] getConnectedSinks(); BluetoothDevice[] getNonDisconnectedSinks(); int getSinkState(in BluetoothDevice device); boolean setSinkPriority(in BluetoothDevice device, int priority); int getSinkPriority(in BluetoothDevice device); boolean connectSinkInternal(in BluetoothDevice device); boolean disconnectSinkInternal(in BluetoothDevice device); } 

    Luego, para acceder a esas funcionalidades, coloque la siguiente clase en su proyecto:

     public class BluetoothA2dpConnection { private IBluetoothA2dp mService = null; public BluetoothA2dpConnection() { try { Class<?> classServiceManager = Class.forName("android.os.ServiceManager"); Method methodGetService = classServiceManager.getMethod("getService", String.class); IBinder binder = (IBinder) methodGetService.invoke(null, "bluetooth_a2dp"); mService = IBluetoothA2dp.Stub.asInterface(binder); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } public boolean connect(BluetoothDevice device) { if (mService == null || device == null) { return false; } try { mService.connectSink(device); } catch (RemoteException e) { e.printStackTrace(); return false; } return true; } public boolean disconnect(BluetoothDevice device) { if (mService == null || device == null) { return false; } try { mService.disconnectSink(device); } catch (RemoteException e) { e.printStackTrace(); return false; } return true; } 

    }

    Por último, para conectar su dispositivo A2dp, seleccione un BluetoothDevice de una lista de dispositivos emparejados y envíelo como parámetro del método connect . Asegúrese de elegir un dispositivo con el perfil correcto, de lo contrario tendrá una excepción.

    He probado esta solución en un teléfono con Android versión 2.3 y funcionó bien.

    Lo siento cualquier error Inglés. Espero que esto pueda ayudarte.

    Primero debe configurar el programa para activar el Bluetooth en el teléfono y seleccionar el dispositivo con el que debe emparejarse vía

     bluetoothAdapter.disable() / enable() 

    (No estoy seguro sobre el emparejamiento, pero esto debe hacerse a través de algunos config actividad)

    Entonces usted debe fijar A2DP para conectar con el estéreo del coche

    Siga este enlace para tratar de encontrar el código para ello, si tengo tiempo voy a tratar de encontrarlo para usted, pero es un comienzo =]

    Api ocultos y internos

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.