Intention de participer

"Intent de participer" est une nouvelle fonctionnalité d'Android Sender qui permet l'application émettrice pour "joindre" une session Cast lancée par d'autres applications ou voix. Vous avez configuré votre application émettrice pour qu'elle soit lancée par un intent créé par Cast. SDK.

Par exemple, lorsque vous lancez une session Cast par commande vocale, le SDK Cast crée un Notification permettant à l'utilisateur de contrôler la lecture sur tous les téléphones Android sur le même réseau. Lorsque l'utilisateur appuie sur la notification, le SDK Cast crée la pour lancer votre application et rejoindre la session Cast.

Consultez le Exemple CastVideos – Android pour une implémentation fonctionnelle de l'intent de jointure.

Utilisation d'un expéditeur Android

Pour activer cette fonctionnalité, procédez comme suit dans votre application:

Assurez-vous que votre application utilise déjà une version ultérieure du SDK Android Sender 11.4.0. Dans build.gradle :

dependencies {
    api 'com.google.android.gms:play-services-cast-framework:11.4.0'
}

Ajoutez un filtre d'intent à une activité dans laquelle vous souhaitez gérer l'intent. La l'intent sera utilisé par les notifications de contrôle à distance (RCN) pour lancer votre application puis rejoignez une session Cast. Nous vous recommandons d'utiliser l'activité où SessionManagerListener est hébergé, et soit onSessionStarted() ou onSessionStartFailed() est appelé. Assurez-vous que le nouveau filtre d'intent est unique dans l'ensemble du système Android. Mer nous vous recommandons d'utiliser la balise <data> pour ce faire, comme suit:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="your_app_scheme" android:host="your_app_host"
        android:path="your_app_path"/>
</intent-filter>

Exemples de balise <data>:

<data android:scheme="https" android:host="example.com"
      android:path="/cast/join"/>

Dans l'activité où vous définissez le nouveau filtre d'intent, appelez SessionManager.startSession(Intent) dans onResume():

Kotlin
override fun onResume() {
    ...
    val intent = intent
    // Intent with format: "<your_app_scheme>://<your_app_host><your_app_path>"
    val intentToJoinUri = Uri.parse("https://example.com/cast/join")
    if (intent.data != null && intent.data == intentToJoinUri) {
        mCastContext.sessionManager.startSession(intent)
    }
    ...
}
<ph type="x-smartling-placeholder">
</ph>
Java
@Override
protected void onResume() {
    ...
    Intent intent = getIntent();
    // Intent with format: "<your_app_scheme>://<your_app_host><your_app_path>"
    Uri intentToJoinUri = Uri.parse("https://example.com/cast/join");
    if (intent.getData() != null && intent.getData().equals(intentToJoinUri)) {
        mCastContext.getSessionManager().startSession(intent);
    }
    ...
}

Configuration de la console développeur de Google Cast

Pour utiliser la fonctionnalité Intention de participation, l'URI de l'application et le nom du package doivent être ajouté dans Console développeur Google Cast

Pour que l'intent de participation fonctionne, votre destinataire doit également être répertorié et publié correctement.

Pour répertorier votre application, définissez l'option de fiche sur "OUI". et indiquez un titre, une description et une image de 512 x 512 pour votre application.

Après la configuration, vous pouvez tester son implémentation grâce aux notifications de la télécommande (RCN) comme indiqué ci-dessous:

  1. Installez l'application Google Home sur un téléphone Android et connectez-vous au Wi-Fi sur le téléphone.
  2. L'appareil compatible Cast configure l'appareil Google Home sur le même réseau.
  3. Lancez une session Cast avec l'appareil Google Home à l'aide de l' l'outil Command and Control (CaC), un autre appareil Android ou iOS, ou par commande vocale, et vérifiez si le Web Receiver l'application est lancée.
  4. Attendez quelques secondes que le réseau rejoigne le numéro de téléphone, puis appuyez sur la notification pour pour déclencher l'intent. L'intent doit être diffusé vers toute application enregistre l'intent avec les données requises pour rejoindre la session.

SessionManagerListener.onSessionStarted(T, String) sera déclenché et rejoindra la session.

Validation

Si votre application rejoint la session, SessionManagerListener.onSessionStarted(T, String) est appelé. Sinon, SessionManagerListener.onSessionStartFailed(T, int) est appelé. En supposant que votre application gère déjà ces événements correctement (par exemple, en lançant une télécommande étendue ou une mini-télécommande), vous n'avez pas besoin faire autre chose.