Um dispositivo receptor da Web (como um Chromecast) no modo visitante permite que um dispositivo remetente (um smartphone ou tablet) transmita para ele quando esse dispositivo estiver por perto, sem exigir que o remetente esteja conectado à mesma rede Wi-Fi que o dispositivo receptor.
Quando um dispositivo remetente estiver perto de um receptor da Web no modo visitante, uma rota chamada "Dispositivo próximo" vai aparecer no menu "Transmitir" do app remetente para esse receptor. Para autenticar, o remetente detecta um token do Web Receiver usando áudio ultrassônico. Se a autenticação automática falhar, o usuário precisará digitar manualmente o PIN do modo visitante. Os usuários podem encontrar o PIN no pano de fundo do Chromecast ou nas configurações do dispositivo no app Google Home.
Modo visitante do iOS
Mudanças na permissão do iOS 13
Com o iOS 13, a Apple introduziu requisitos de permissões mais rigorosos que afetam os apps que usam o SDK do Google Cast.
É necessário adicionar a permissão Privacy - Bluetooth Always Usage Description
ao arquivo Info.plist
do app, conforme mostrado a seguir. Substitua ${PRODUCT_NAME}
pelo nome do seu app. A descrição precisará ser mudada se o app usar
o Bluetooth® por outros motivos, além da transmissão.
<key>NSBluetoothAlwaysUsageDescription</key> <string>${PRODUCT_NAME} uses Bluetooth to discover nearby Cast devices.</string>
A partir do SDK do Google Cast v4.4.3, um SDK adicional está disponível sem a
compatibilidade com o modo visitante que não exige a permissão
do Bluetooth®. Isso está disponível no
site para desenvolvedores e no novo
CocoaPods do google-cast-sdk-no-bluetooth
.
Como remover o modo visitante para iOS
A partir do SDK do Google Cast v4.4.3, há um SDK adicional disponível sem
suporte ao modo visitante que não exige a permissão do Bluetooth®. Isso está disponível no site para desenvolvedores e no novo CocoaPods do google-cast-sdk-no-bluetooth
.
Permissões para Bluetooth® e microfone para iOS
O iOS usa o Bluetooth para procurar dispositivos por perto e, portanto, precisa de permissão para usar o Bluetooth no modo visitante. O microfone é necessário para detectar o token ultrassônico ao parear com um dispositivo no modo visitante e também precisa de permissão.
Para permissões adequadas, você precisa adicionar duas entradas ao arquivo Info.plist
do app da seguinte maneira: Substitua ${PRODUCT_NAME}
pelo nome do app. A
descrição precisa ser mudada se o app usar essas permissões por outros
motivos, além de transmitir.
<key>NSBluetoothPeripheralUsageDescription</key> <string>${PRODUCT_NAME} uses Bluetooth to discover nearby Cast devices.</string> <key>NSMicrophoneUsageDescription</key> <string>${PRODUCT_NAME} uses microphone access to listen for ultrasonic tokens when pairing with nearby Cast devices.</string>
Essas entradas são necessárias desde o iOS 10.
Dispositivos de transmissão compatíveis
Remetentes do iOS: o modo visitante para iOS usa Bluetooth de baixa energia (BLE) e tokens de áudio para identificar dispositivos Chromecast próximos. O suporte a BLE foi adicionado a dispositivos Chromecast e Chromecast Audio de nova geração, que têm uma forma redonda e foram lançados em setembro de 2015. Assim, o modo visitante funciona nessa nova geração de dispositivos. O modo visitante com dispositivos de remetente iOS não funciona em dispositivos Chromecast de geração mais antiga.
Remetentes do Android: o modo visitante para Android usa Wi-Fi para identificar dispositivos Chromecast próximos. No Android, o modo visitante é compatível com todos os dispositivos Chromecast e Chromecast Audio, incluindo a geração mais antiga.
O Nexus Player e o Android TV não oferecem suporte ao modo visitante.
Considerações para desenvolvedores
O handshake do código PIN necessário para iniciar uma sessão acontece automaticamente, mas pode haver circunstâncias que impedem a conclusão da troca. Por exemplo, a TV pode ter o som desativado ou haver outra interferência.
O SDK do Google Cast oferece suporte ao modo visitante automaticamente: seu app exibe o botão "Transmitir" se um SDK da Web encontrar um receptor da Web no modo visitante ou conectado à mesma rede Wi-Fi que o remetente. O app oferece suporte ao modo visitante, desde que ele não verifique explicitamente nem exija uma conexão Wi-Fi para fazer a descoberta de Cast e exibir o botão "Transmitir".
O modo visitante usa uma retransmissão baseada na nuvem para sinalizar do remetente ao receptor da Web, em vez do Wi-Fi local. Consequentemente, as seguintes funcionalidades não são compatíveis com o modo visitante:
- Espelhamento da guia do Chrome e espelhamento do Android
- Transmitir mídia armazenada localmente (como fotos, vídeos ou áudio)
Desativando o modo visitante
Quando você desativa o modo visitante, seu app não pode se conectar a receptores da Web próximos no modo convidado, mas pode se conectar normalmente a esses receptores na mesma rede Wi-Fi do dispositivo remetente que está executando seu app.
Espelhamento ou transmissão de mídia armazenada localmente
Se o app depender do espelhamento ou da transmissão de mídia armazenada localmente, você precisará desativar o modo visitante. Consulte Editar informações do aplicativo para ver as etapas de desativação do modo visitante.
Apps Android
Em apps Android, se você tiver casos em que apenas alguns recursos exigem acesso
à rede local e não funcionam com conexões no modo visitante, use
a propriedade isOnLocalNetwork()
do objeto Cast Device
na biblioteca de cliente do SDK do Google Play Services mais recente.