Teilnahmeabsicht

Teilnahmeabsicht ist eine neue Funktion von Android Sender, mit der Absender-App „beitreten“ einer Streamsitzung, die von anderen Apps oder Sprachassistenten verwenden. Du hast deine Absender-App so eingerichtet, dass sie über einen von Cast erstellten Intent gestartet wird SDK.

Wenn Sie z. B. ein Streaming per Sprachbefehl starten, erstellt das Cast SDK eine Benachrichtigung, mit der Nutzer die Wiedergabe auf allen Android-Smartphones steuern können im selben Netzwerk. Wenn auf die Benachrichtigung getippt wird, erstellt das Cast SDK die deine App zu starten, um an der Cast-Sitzung teilzunehmen.

Weitere Informationen finden Sie in der CastVideos-Android-Beispiel für eine funktionierende Implementierung von „Intent to Join“.

Android-Sender verwenden

Führen Sie die folgenden Schritte in Ihrer App aus, um diese Funktion zu aktivieren:

Achte darauf, dass deine App bereits Android Sender SDK-Version verwendet als 11.4.0. In build.gradle:

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

Fügen Sie einer Aktivität, in der Sie den Intent verarbeiten möchten, einen neuen Intent-Filter hinzu. Die Intent wird von Remote Control Notifications (RCN) verwendet, um deine App zu starten und nehmen Sie an der Übertragung teil. Wir empfehlen Ihnen die Aktivität zu verwenden, SessionManagerListener gehostet wird und entweder onSessionStarted() oder onSessionStartFailed() aufgerufen wird. Achte darauf, dass der neue Intent-Filter im gesamten Android-System eindeutig ist. Mi. empfehlen, dafür das Tag <data> zu verwenden:

<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>

Beispiele für <data>-Tags:

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

Rufen Sie in der Aktivität, in der Sie den neuen Intent-Filter definieren, SessionManager.startSession(Intent) in onResume():

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph>
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);
    }
    ...
}

Einrichtung der Google Cast Developer Console

Damit Sie die Funktion „Intent to Join“ nutzen können, müssen der App-URI und der Paketname hinzugefügt im Google Cast Developer Console

Der Empfänger muss auch aufgeführt und veröffentlicht sein, damit der Intent to Join funktioniert ordnungsgemäß funktioniert.

Ändern Sie die Listenoption auf „JA“, um Ihre App aufzulisten. und geben Sie einen Titel, eine Beschreibung und eine 512 x 512 Pixel große Grafik für Ihre App.

Nach der Einrichtung kannst du die Implementierung mit Benachrichtigungen zur Fernbedienung testen (RCN) wie unten dargestellt:

  1. Installiere die Google Home App auf einem Android-Smartphone und stelle eine WLAN-Verbindung auf dem Smartphone.
  2. Auf dem für Google Cast optimierten Gerät wird das Google Home-Gerät im selben Netzwerk eingerichtet.
  3. Starten Sie das Streamen mit dem Google Home-Gerät über die CaC-Tool (Command and Control) Android- oder iOS-Gerät verwenden oder per Spracheingabe prüfen, ob der Web Receiver App gestartet wurde.
  4. Warten Sie einige Sekunden, bis RCN auf dem Smartphone verfügbar ist, und tippen Sie auf die Benachrichtigung, um den Intent auslösen. Der Intent sollte an jede App weitergegeben werden, registriert den Intent mit den erforderlichen Daten, um an der Sitzung teilzunehmen.

SessionManagerListener.onSessionStarted(T, String) ausgelöst werden und an der Sitzung teilnehmen.

Überprüfung

Wenn Ihre App an der Sitzung teilnimmt, SessionManagerListener.onSessionStarted(T, String) aufgerufen wird. Andernfalls SessionManagerListener.onSessionStartFailed(T, int) aufgerufen wird. Unter der Annahme, dass Ihre App diese Ereignisse bereits ordnungsgemäß verarbeitet (für z. B. einen erweiterten Controller oder Mini-Controller starten, müssen Sie sich nicht noch etwas anderes tun.