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 szerokiej gamy interfejsów API do tworzenia reklam, zbierania danych analitycznych, uwierzytelniania użytkowników, integrowania map i wielu innych funkcji. Więcej informacji znajdziesz w omówieniu Usług Google Play. Ważne jest, aby upewnić się, że na urządzeniu użytkownika jest zainstalowany prawidłowy pakiet APK usług Google Play, ponieważ aktualizacje mogą nie docierać do wszystkich użytkowników od razu.

Dodawanie Usług Google Play do projektu

Wybierz poniżej środowisko programistyczne i dodaj do projektu usługi Google Play, wykonując podane czynności.

Android Studio

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

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

    Uwaga: projekty Android Studio zawierają plik najwyższego poziomu build.gradle i plik build.gradle dla każdego modułu. Pamiętaj, aby edytować plik w module aplikacji. Więcej informacji o Gradle znajdziesz w artykule Tworzenie projektu za pomocą 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. Na 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:22.1.0'
        }

    Pamiętaj, aby aktualizować ten numer wersji za każdym razem, gdy Usługi Google Play są aktualizowane.

    Uwaga: jeśli liczba odwołań do metod w aplikacji przekroczy limit 65 tysięcy, kompilacja aplikacji może się nie powieść. Możesz rozwiązać ten problem podczas kompilowania aplikacji, określając tylko te interfejsy API Usług Google Play, których używa Twoja aplikacja, zamiast wszystkich. Informacje o tym, jak to zrobić, znajdziesz w artykule Selektywne kompilowanie interfejsów API do pliku wykonywalnego.

  4. Zapisz zmiany i na pasku narzędzi kliknij Sync Project with Gradle Files (Synchronizuj projekt z plikami Gradle).

Inne IDE

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

  1. Skopiuj projekt biblioteki z lokalizacji<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ do miejsca, w którym przechowujesz projekty aplikacji na Androida.
  2. W projekcie aplikacji odwołaj się do projektu biblioteki Usług Google Play. Więcej informacji o tym, jak to zrobić, znajdziesz w artykule Odwoływanie się do projektu biblioteki w wierszu poleceń.

    Uwaga: odwołuj się do kopii biblioteki, którą skopiowano do obszaru roboczego dewelopera. Nie odwołuj się do biblioteki bezpośrednio z katalogu pakietu SDK Androida.

  3. Po dodaniu biblioteki Usług Google Play jako zależności w projekcie aplikacji otwórz plik manifestu aplikacji 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ływał się do projektu biblioteki, możesz zacząć tworzyć funkcje za pomocą interfejsów API usług Google Play.

Tworzenie wyjątku ProGuard

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

-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