Konfiguracja programowania za pomocą platformy Cast Application Framework (CAF) na Androida

Wymagania wstępne

Pakiet Google Cast SDK na Androida jest częścią pakietu SDK Usług Google Play i nie trzeba go pobierać oddzielnie.

Uwaga: Usługi Google Play zapewniają dostęp do różnych interfejsów API do tworzenia reklam, zbierania statystyk, uwierzytelniania użytkowników, integrowania map i wielu innych celów. Więcej informacji znajdziesz w artykule Omówienie usług Google Play. Musisz upewnić się, że na urządzeniu użytkownika jest zainstalowany odpowiedni pakiet APK Usług Google Play, ponieważ aktualizacje mogą nie dotrzeć od razu do wszystkich użytkowników.

Dodaj Usługi Google Play do projektu

Wybierz poniżej środowisko programistyczne i dodaj Usługi Google Play do swojego projektu, postępując zgodnie z instrukcjami.

Android Studio

Aby udostępnić w aplikacji interfejsy API Usług Google Play:

  1. Otwórz plik build.gradle w katalogu modułu aplikacji.

    Uwaga: projekty Android Studio zawierają plik build.gradle najwyższego poziomu i plik build.gradle dla każdego modułu. Pamiętaj, aby edytować plik modułu aplikacji. Więcej informacji o Gradle znajdziesz w artykule o tworzeniu projektu z użyciem Gradle.

  2. Sprawdź, czy google() znajduje się na liście repositories.
    repositories {
        google()
    }
    
  3. Dodaj nową regułę kompilacji w sekcji dependencies dla najnowszej wersji play-services. Przykład:
    apply plugin: 'com.android.application'
        ...
    
        dependencies {
            implementation 'androidx.appcompat:appcompat:1.3.1'
            implementation 'androidx.mediarouter:mediarouter:1.2.5'
            implementation 'com.google.android.gms:play-services-cast-framework:21.5.0'
        }
    

    Pamiętaj, aby aktualizować ten numer przy każdej aktualizacji Usług Google Play.

    Uwaga: jeśli liczba odwołań do metod w aplikacji przekracza limit 65 tys., aplikacja może się nie skompilować. Możesz zapobiec temu problemowi podczas kompilowania aplikacji, określając tylko konkretne interfejsy API Usług Google Play, których używa Twoja aplikacja, a nie wszystkie. Informacje o tym, jak to zrobić, znajdziesz w artykule Selektywne kompilowanie interfejsów API do plików wykonywalnych.

  4. Zapisz zmiany i na pasku narzędzi kliknij Synchronizuj projekt z plikami Gradle.

Inne IDE

Aby udostępnić w aplikacji interfejsy API Usług Google Play:

  1. Skopiuj projekt biblioteki z <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ do lokalizacji, w której zarządzasz projektami aplikacji na Androida.
  2. W projekcie aplikacji odwołuj się do projektu biblioteki Usług Google Play. Więcej informacji o tym, jak to zrobić, znajdziesz w artykule Odwoływanie się do projektu bibliotecznego Library Project w wierszu poleceń.

    Uwaga: musisz odwoływać się do kopii biblioteki skopiowanej do obszaru roboczego programowania – nie odwoływać się do biblioteki bezpośrednio z katalogu Android SDK.

  3. Po dodaniu biblioteki usług Google Play jako zależności dla projektu aplikacji otwórz plik manifestu i dodaj ten tag jako element podrzędny elementu <application>:
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    

Gdy skonfigurujesz projekt tak, aby odwołuje się do projektu biblioteki, możesz zacząć tworzyć funkcje za pomocą interfejsów API Usług Google Play.

Utwórz wyjątek ProGuard

Aby zapobiec usuwaniu wymaganych klas przez ProGuard, dodaj do pliku /proguard-project.txt te wiersze:

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

-keepnames class * implements android.os.Parcelable
-keepclassmembers class * implements android.os.Parcelable {
  public static final *** CREATOR;
}

-keep @interface android.support.annotation.Keep
-keep @android.support.annotation.Keep class *
-keepclasseswithmembers class * {
  @android.support.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
  @android.support.annotation.Keep <methods>;
}

-keep @interface com.google.android.gms.common.annotation.KeepName
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
  @com.google.android.gms.common.annotation.KeepName *;
}

-keep @interface com.google.android.gms.common.util.DynamiteApi
-keep public @com.google.android.gms.common.util.DynamiteApi class * {
  public <fields>;
  public <methods>;
}

-dontwarn android.security.NetworkSecurityPolicy