Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Usar alto-falantes em wearables

Alguns dispositivos Wear OS incluem alto-falantes, o que permite incorporar som nos seus apps e oferecer uma dimensão extra de interação com o usuário. Um dispositivo Wear com alto-falantes pode acionar alarmes de relógio ou timer completos com notificações de áudio. Os jogos no Wear ficam mais divertidos quando oferecem não apenas imagens, mas também sons.

Esta página descreve como apps para Wear podem usar APIs conhecidas do Android para tocar sons por meio dos alto-falantes do dispositivo.

Confira os seguintes recursos relacionados:

Detectar os alto-falantes

Primeiro, um app para Wear precisa detectar se o dispositivo wearable tem alto-falantes. No exemplo a seguir, o app usa o método getDevices() com o valor de FEATURE_AUDIO_OUTPUT para confirmar se o dispositivo está equipado com alto-falantes.

Kotlin

    val packageManager: PackageManager = context.packageManager
    val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager

    // Check whether the device has a speaker.
    return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
            // Check FEATURE_AUDIO_OUTPUT to guard against false positives.
            packageManager.hasSystemFeature(PackageManager.FEATURE_AUDIO_OUTPUT)) {
        val devices: Array<AudioDeviceInfo> = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)
        devices.any { it.type == AudioDeviceInfo.TYPE_BUILTIN_SPEAKER }
    } else {
        false
    }
    

Java

    PackageManager packageManager = context.getPackageManager();
    AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);

    // Check whether the device has a speaker.
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
            // Check FEATURE_AUDIO_OUTPUT to guard against false positives.
            packageManager.hasSystemFeature(PackageManager.FEATURE_AUDIO_OUTPUT)) {
        AudioDeviceInfo[] devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);
        for (AudioDeviceInfo device : devices) {
            if (device.getType() == AudioDeviceInfo.TYPE_BUILTIN_SPEAKER) {
                return true;
            }
        }
    }
    return false;
    

Tocar sons

Depois de detectar os alto-falantes, o processo para tocar sons no Wear OS é o mesmo utilizado em celulares ou outros dispositivos. Para mais informações, consulte Reprodução de mídias.

Se também quiser gravar áudio pelo microfone do wearable, seu app também precisará de permissão para usar o microfone. Para saber mais, consulte Permissões no Wear OS.