Podobne zamiar

„Zamiar dołączenia” to nowa funkcja aplikacji Android Sender, która pozwala aplikacja nadawcy, aby „join” sesja przesyłania, która została zainicjowana przez inne aplikacje lub głosu. Konfigurujesz aplikację nadawcy tak, aby była uruchamiana przez intencję utworzoną przez Cast SDK.

Jeśli na przykład do rozpoczęcia sesji przesyłania użyjesz głosu, SDK Cast utworzy powiadomienie umożliwiające użytkownikowi sterowanie odtwarzaniem na wszystkich telefonach z Androidem w tej samej sieci. Po kliknięciu powiadomienia pakiet SDK Cast tworzy zamierza uruchomić aplikację, aby dołączyć do sesji przesyłania.

Zobacz Przesyłanie filmów Cast – przykład na Androida za działającą implementację intencji to Join.

Korzystanie z aplikacji Android Sender

Aby włączyć tę funkcję, wykonaj te czynności w aplikacji:

Upewnij się, że aplikacja korzysta już z pakietu Android Sender SDK w wersji nowszej niż 11.4.0. W aplikacji build.gradle:

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

Dodaj nowy filtr intencji do działania, w którym chcesz obsługiwać intencję. będzie używany przez powiadomienia Remote Control (RCN) do uruchamiania Twojej aplikacji i dołącz do sesji przesyłania. Zalecamy korzystanie z aktywności, w których SessionManagerListener i albo onSessionStarted() lub onSessionStartFailed() . Upewnij się, że nowy filtr intencji jest unikalny w całym systemie Android. Śr zalecamy użycie do tego tagu <data> w ten sposób:

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

Przykłady tagu <data>:

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

W aktywności, w której definiujesz nowy filtr intencji, wywołaj polecenie SessionManager.startSession(Intent) w 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)
    }
    ...
}
.
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);
    }
    ...
}

Konfiguracja konsoli programisty Google Cast

Aby można było używać funkcji Intent to Join, identyfikator URI aplikacji i nazwa pakietu muszą mieć dodane w Konsola programisty Google Cast.

Aby funkcja Intent to Join działała, odbiorca musi też być na liście i opublikowany bez obaw.

Aby wyświetlić informacje o aplikacji, zmień ustawienie opcji na „TAK”. i podaj tytuł, opis i grafika 512 x 512 dla aplikacji.

Po konfiguracji możesz przetestować implementację za pomocą powiadomień o zdalnej kontroli (RCN) jak poniżej:

  1. Zainstaluj aplikację Google Home na telefonie z Androidem i połącz się z Wi-Fi na telefonu.
  2. Urządzenie obsługujące Cast konfiguruje urządzenie Google Home w tej samej sieci.
  3. Rozpocznij sesję przesyłania na urządzeniu Google Home za pomocą Narzędzie Command and Control (CaC), na innym urządzeniu z Androidem lub iOS albo za pomocą głosu i sprawdź, czy odbiornik internetowy jest uruchamiana.
  4. Odczekaj kilka sekund na telefon RCN i dotknij powiadomienia, aby i aktywować intencję. Intencję należy rozpowszechniać w dowolnej aplikacji, która rejestruje intencję z danymi wymaganymi do dołączenia do sesji.

SessionManagerListener.onSessionStarted(T, String) i dołączy do sesji.

Weryfikacja

Jeśli aplikacja dołączy do sesji, SessionManagerListener.onSessionStarted(T, String) . W przeciwnym razie SessionManagerListener.onSessionStartFailed(T, int) . Przy założeniu, że aplikacja prawidłowo obsługuje już te zdarzenia (na np. uruchomienia rozszerzonego kontrolera lub minikontrolera), nie musisz zrobić więcej.