Lineamientos de certificación para cambiar de audio

Preparación para la certificación

  • Prepara los dispositivos de prueba.
    • Necesitarás 5 dispositivos Android.
      • Estos dispositivos deben incluir lo siguiente:
        • Al menos un dispositivo con Android T (13) y uno con Android V (15)
        • Al menos un Samsung y un Pixel.
        • Por ejemplo:
          • 1 OnePlus (Android 10).
          • 3 Samsung (Android 11, 12 y 13)
          • 1 Pixel (Android 15).
    • Un dispositivo sin interruptor de audio:
      • Cualquier iPhone, PC, laptop con Bluetooth (BT) o teléfono Android con el interruptor de audio inhabilitado
        • Puedes desactivar el interruptor de audio desde la configuración de detalles del dispositivo Bluetooth.
      • El caso de prueba de multipunto (MP) 2.8 necesita un dispositivo sin interruptor de audio, además de los 5 teléfonos de prueba.
  • Únete al grupo de prueba del interruptor de audio con tus cuentas de prueba para mostrar notificaciones de depuración en teléfonos de prueba.

    • Esto también permite que Google recopile datos de prueba a través de Google Analytics.

Clásico con A2DP+HFP

  • Asegúrate de que todos los dispositivos Android tengan instalada la versión 23.xx.xx o posterior de GmsCore.

BLE con LE Audio

  • Al menos dos de los teléfonos de referencia deben admitir LE Audio.
    • Por ejemplo, un teléfono Samsung y un teléfono Pixel que admitan LE Audio.
  • Asegúrate de que todos los dispositivos Android tengan instalada la versión 24.33.xx o posterior de GmsCore.

Criterios de certificación

  • La tasa de éxito del cambio de destino debe superar el 95% en todos los casos de prueba.
  • En las pruebas que requieren un interruptor, la conexión del perfil y el estado activo del interruptor se deben completar en un plazo de 3 segundos después de activar eventos de audio en al menos el 75% de los casos.

Clásico con A2DP+HFP

Las autopruebas deben realizarse en las siguientes combinaciones:

  • Teléfono A=Android S (12) + Teléfono B=Android T (13)
  • Teléfono A=Android T (13) + Teléfono B=Android S (12)

BLE con LE Audio

Las autopruebas deben realizarse en las siguientes combinaciones:

  • Teléfono A: Bluetooth clásico, Teléfono B: Bluetooth clásico
  • Teléfono A: Audio LE, Teléfono B: Bluetooth clásico
  • Teléfono A: Bluetooth clásico, Teléfono B: Audio LE

De manera opcional, los proveedores que admiten conexiones Dual LE Audio deben probar lo siguiente:

  • Teléfono A: Audio LE, Teléfono B: Audio LE

Guía de pruebas

Preparación del dispositivo en prueba (DUT)

  • Verifica que el dispositivo BT no se haya vinculado con ningún teléfono que haya accedido a la Cuenta de Google de prueba.
    • Si el dispositivo se vinculó a la Cuenta de Google de prueba, haz lo siguiente para borrar la vinculación:
      • En los dispositivos vinculados:
        • Navega a la configuración de Bluetooth.
        • Elige "Olvidar dispositivo".
        • Activa y desactiva el modo de avión.
    • Asegúrate de que la opción "Guardar dispositivos automáticamente" esté ACTIVADA.
      • Este interruptor está DESACTIVADO de forma predeterminada.
      • Puedes encontrar esta opción en Configuración > Google > Dispositivos > Dispositivos guardados (uno por DUT).
    • Pon el dispositivo Bluetooth en modo de vinculación.
    • Vincula el dispositivo Bluetooth inicial (A).
    • Vincula los dispositivos Bluetooth posteriores con otros dispositivos (B, C, D, etcétera).

Alcance

  • Todos los auriculares ejecutan pruebas desde las distintas pestañas del informe de autoprueba BT Classic o BT LE Audio.
  • Los auriculares que solo admiten el modo SinglePoint (SP) ejecutan lo siguiente:
    • La pestaña Generic_test.
  • Los auriculares compatibles con el modo MP ejecutan lo siguiente:
    • La pestaña Generic_test.
    • La pestaña Multipoint_only.
  • Los auriculares MP que se pueden cambiar al modo SP ejecutan lo siguiente:
    • La pestaña Generic_test con MP desactivada
    • La pestaña Generic_test con el MP activado
    • La pestaña Multipoint_only con MP activado

Completa el descanso automático y el informe de autoprueba

  • Haz una copia de los informes de autoprueba de BT Classic o BT LE Audio.
  • Ejecuta todos los casos de prueba al menos dos veces.
  • Las pruebas deben ejecutarse de la siguiente manera:

Clásico con A2DP+HFP

  • El dispositivo B será el DUT principal.
    • Ingresa los detalles del dispositivo B en los campos "Teléfono" y "SO" en la parte superior de la plantilla.

Ejemplo de caso de prueba:

  • Teléfonos de prueba:

    • Dispositivo 1: Samsung (Android 13)
    • Dispositivo 2: Pixel (Android 12 o 13) y otros
  • Pruebas ejecutadas:

    • Ejecuta 1. Dispositivo A: Samsung S10+ (12), dispositivo B: Pixel 7 Pro (13) Columna D: Teléfono=Pixel 7 Pro, SO=Android 13
    • Ejecuta 2. Dispositivo A=Pixel 7 Pro (13), Dispositivo B=Pixel 6(12) columna E: Teléfono=Pixel 6, SO=Android 12

Ejemplo de una prueba completada en la plantilla de autoprueba:

En esta imagen, se muestran los resultados de una prueba de ejemplo.

BLE con LE Audio

  1. Dispositivo A=Android V (15) + Dispositivo B=Android T (13)
  2. Dispositivo A=Android T (13) + Dispositivo B=Android V (15)
  3. Dispositivo A=Android T (13) + Dispositivo B=Android S (12)
  4. Dispositivo A=Android T (15) + Dispositivo B=Android V (15)
  5. El dispositivo B será el DUT principal.
    • Ingresa los detalles del dispositivo B en los campos "Teléfono" y "SO" en la parte superior de la plantilla.

Ejemplo de caso de prueba:

  • Teléfonos de prueba:

    • Dispositivo 1: Samsung (Android 13)
    • Dispositivo 2: Pixel (Android 15) y otros
  • Pruebas ejecutadas:

    • [LEA+BT]: Dispositivo A= Pixel 8 (15), dispositivo B=Pixel 7 pro (13) columna D: teléfono=Pixel 7 pro, SO=Android 13
    • [BT+LEA]: Dispositivo A=Pixel 7 (13), dispositivo B=Pixel 8 (Android 15) columna E: Teléfono=Pixel 8, SO=Android 15
    • [BT+BT]: Dispositivo A=Pixel 7 Pro (13), dispositivo B=Samsung S10+ (12) columna E: Teléfono=Samsung S10+, SO=Android 12
    • [LEA+LEA]: Dispositivo A=Pixel 8 (15), dispositivo B=Pixel 8(15) columna E: Teléfono=Pixel 8, SO=Android 15

Ejemplo de una prueba completada en la plantilla de autoprueba:

En esta imagen, se muestran los resultados de una prueba de ejemplo.

Eventos de audio:

  • Los 4 tipos de eventos de audio probados y las apps de prueba recomendadas son los siguientes:

    1. Llamada:
      1. La app de teléfono integrada.
    2. VoIP: Funcionará cualquier app de VoIP, como las siguientes:
      1. La app de prueba del cambio de audio.
      2. FB Messenger.
      3. Línea.
      4. WhatsApp.
      5. Google Meet
      6. Google Meet
    3. Contenido multimedia: Funcionará cualquier reproductor de audio, como los siguientes:
      1. La app de prueba del cambio de audio.
      2. YouTube Music.
      3. Apple Music.
      4. Spotify.
      5. Google Podcasts).
    4. Partido:
      1. La app de prueba del cambio de audio.

Información de depuración:

  • Las notificaciones se habilitan después de unirse al grupo fp-sass-partner-test. Estos son algunos ejemplos:

    • Notificación de estado más reciente:

    Figura 1: Se muestra el mensaje "notificación de estado más reciente".

    • No hay notificaciones de interruptores:

    Figura 2: Se muestra el mensaje "No hay notificaciones de cambio".

    • Notificación de latencia del interruptor:

    Figura 3: Se muestra el mensaje "notificación de latencia del interruptor".

Medición de latencia

  • Existen dos tipos de latencia de interruptores:
    1. Conectar un perfil Bluetooth a un buscador desconectado
      • Esto incluye todos los casos de SinglePoint y algunos casos de MP cuyo buscador de destino (dispositivo B) está desconectado.
    2. Cambia el buscador activo conectado.
      • Esto incluye algunos casos de MP en los que el buscador de destino (dispositivo B) ya está conectado.
  • Existen dos maneras de recuperar información de latencia:
    1. El comando adb puede volcar toda la latencia.
      • Consulta la sección latencia de volcado para obtener más detalles.
      • Este comando puede proporcionar y registrar la latencia después de terminar al menos un caso de prueba.
    2. Con la app de prueba del cambio de audio.
      • La app que se ejecuta en el buscador de destino mostrará latencia después del cambio.
      • Si no hubo un cambio, la app mostrará el motivo "sin cambio".

App de prueba del cambio de audio:

  • El uso de la app para activar eventos de audio de VoIP, contenido multimedia o juegos durante una autoprueba simplificará la configuración de la prueba y reducirá la latencia del evento del buscador.
    • Puedes descargar la versión más reciente aquí.
    • La prueba de VoIP de audio LE necesita una política que se habilite de forma manual: > adb root > adb shell settings put global hidden_api_policy 1 > adb reboot
  • Instalación de la app:
    • Copia el APK en el teléfono de prueba y ábrelo.
    • Como alternativa, usa adb install audio_test_app.apk.
  • Si ves un diálogo que solicita acceso a las notificaciones, haz lo siguiente:
    1. Haz clic en "Aceptar".
    2. Elige "FP SASS test" en la lista de apps.
    3. Permite el acceso a las notificaciones.

Descripción general de la app:

Esta imagen es un ejemplo de la app en ejecución

  • Proveedor de destino

    • Cuando hagas clic en este botón, se mostrará una lista de los dispositivos Bluetooth vinculados. Selecciona la que quieras probar.
    • Los botones Conectar y Desconectar funcionan como el de los detalles del dispositivo de la configuración de Bluetooth.
  • Estado actual

    • Este campo muestra el último estado de conexión que recibió el buscador de un proveedor mediante la publicidad BLE o el flujo de eventos.
    • Aquí también se muestran las notificaciones de depuración del interruptor de audio.
  • Tipo de buscador

    • Esta opción se usa para cambiar el dispositivo entre transmisiones de audio.

Tipo de audio

Clásico con A2DP+HFP

  • VoIP
    • Si seleccionas este modo, se cambiará el modo de audio a AudioManager.MODE_IN_COMMUNICATION y se llamará a AudioManager.startBluetoothSco. Luego, se reproducirá audio con USAGE_VOICE_COMMUNICATION.
    • El tipo de transmisión es STREAM_VOICE_CALL.
    • El estado de conexión del proveedor debería cambiar a CONNECTED_HFP en un plazo de 5 segundos.
  • Contenido multimedia
    • Si seleccionas este modo, se reproducirá audio compatible con AVRCP. El tipo de uso de audio es USAGE_MEDIA.
    • El estado de conexión del proveedor debería cambiar a CONNECTED_A2DP_WITH_AVRCP en un plazo de 5 segundos.
    • Es posible que el estado de la conexión cambie brevemente a CONNECTED_A2DP_ONLY cuando se inicie o detenga.
  • Juego
    • Si seleccionas este modo, se reproducirá audio que no es compatible con AVRCP. El tipo de uso de audio es USAGE_GAME.
    • El estado de conexión del proveedor debería cambiar a CONNECTED_A2DP_ONLY en un plazo de 5 segundos.

BLE con LE Audio

  • VoIP

    • Si seleccionas este modo, el modo de audio cambiará a AudioManager.MODE_IN_COMMUNICATION y se reproducirá audio con USAGE_VOICE_COMMUNICATION.
    • El tipo de transmisión es STREAM_VOICE_CALL.
    • El estado de conexión del proveedor debería cambiar a CONNECTED_LE_AUDIO_CALL en un plazo de 5 segundos.
  • Contenido multimedia

    • Si seleccionas este modo, se reproducirá audio con el tipo de transmisión STREAM_MUSIC. El tipo de uso de audio es USAGE_MEDIA.
    • El estado de conexión del proveedor debería cambiar a CONNECTED_LE_AUDIO_MEDIA_WITH_CONTROL en un plazo de 5 segundos.
    • Es posible que el estado de la conexión cambie brevemente a CONNECTED_LE_AUDIO_MEDIA_WITHOUT_CONTROL cuando se inicie o detenga.
  • Juego

    • Si seleccionas este modo, se reproduce audio sobre el que el usuario no tiene control directo. El tipo de uso de audio es USAGE_GAME.
    • El estado de conexión del proveedor debería cambiar a CONNECTED_LE_AUDIO_MEDIA_WITHOUT_CONTROL en un plazo de 5 segundos.
  • Botones de reproducción y detención

    • Los botones PLAY y STOP inician o detienen el audio.
  • Resultado del interruptor

    • Este campo muestra la latencia activa de Connect y Switch. También muestra el motivo por el que se deniega un cambio si se activó un evento de audio, pero no se produjo el cambio.
    • La latencia se mide en milisegundos (ms).
    • En general, la latencia se mide desde el inicio del activador del interruptor de audio hasta la recepción de un evento de interruptor multipunto conectado o de notificación de perfil BT.
    • Los interruptores activados por el proveedor miden la latencia desde el inicio del audio.

Latencia de volcado

  • El siguiente comando permite que un usuario capture mediciones de latencia cuando ejecuta pruebas manuales: adb shell dumpsys activity service com.google.android.gms/.nearby.discovery.service.DiscoveryService
    • Las mediciones de latencia se muestran en la sección SwitchHistory de NearbyDeviceManager:
            NearbyDeviceManager
              Nearby Sass device count: 1
                Sass device - address:XX:XX:XX:XX:XX:XX, name:Googler's Pixel Buds, accountKey:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, modelId:6edaf7
                  SwitchHistory
                    15:30:21:166 - 15:30:25:201, latency 3035ms, Succeed, SASS_TRIGGERED_CONNECT, SASS switch, A2DP
                    15:34:58:568 - 15:34:58:568, latency 0ms, Succeed, SWITCH_ACTIVE_TO_SELF, SASS switch, HFP
                    15:36:26:615 - 15:36:31:603, latency 1988ms, Succeed, SASS_TRIGGERED_CONNECT, SASS switch, A2DP
                    15:37:56:108 - 15:37:56:250, latency 142ms, Succeed, SWITCH_ACTIVE_TO_SELF, SASS switch, A2DP"
  • Cualquier interruptor que GmsCore no pueda medir (p.ej., interruptor activo para HFP) se registrará como una latencia de 0 ms.

Referencia de los patrones de registro:

Ejemplos de registros de la prueba de latencia

Problemas conocidos:

Los siguientes son errores conocidos que causa el buscador:

  1. Cambio de audio del juego incorrecto.
    • Los teléfonos Samsung establecerán el estado de conexión en CONNECTED_A2DP_WITH_AVRCP, en lugar de CONNECTED_A2DP_ONLY, cuando se jueguen juegos.
    • Algunos juegos (como Candy Crush) pueden volver a reproducir música de fondo y activar un nuevo evento de audio sin entrada del usuario. Es posible que los teléfonos conectados cambien constantemente el audio en todos los teléfonos que abran el juego.