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

Wymagania wstępne

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

Uwaga: usługi Google Play zapewniają dostęp do szeregu interfejsów API, które można wykorzystać do tworzenia reklam, zbierania danych analitycznych, uwierzytelniania użytkowników, integrowania map i do wielu innych celów. Więcej informacji znajdziesz w omówieniu Usług Google Play. Musisz zadbać o to, aby na urządzeniu użytkownika była zainstalowana odpowiednia wersja pliku APK usług Google Play, ponieważ aktualizacje mogą nie docierać do wszystkich użytkowników natychmiast.

Dodawanie Usług Google Play do projektu

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

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

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

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

  2. Sprawdź, czy google() jest uwzględniona w wymienionych repositories.
    repositories {
        google()
    }
  3. Dodaj nową regułę kompilacji w sekcji dependencies dla najnowszej wersji aplikacji 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.0.0'
        }

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

    Uwaga: jeśli liczba odwołań do metod w aplikacji przekroczy 65 tys. znaków, kompilacja aplikacji może się nie udać. Ten problem możesz rozwiązać podczas kompilowania aplikacji, podając tylko te interfejsy API usług Google Play, których używa Twoja aplikacja, zamiast wszystkich. Więcej informacji na ten temat znajdziesz w artykule Wybieranie interfejsów API do kompilacji w plikach wykonywalnych.

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

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

  1. Skopiuj projekt biblioteki z adresu <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ do lokalizacji, w której przechowujesz projekty 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 biblioteki w wierszu poleceń.

    Uwaga: musisz odwoływać się do kopii biblioteki skopiowanej do Twojego środowiska programistycznego. Nie odwołuj się bezpośrednio do biblioteki z katalogu pakietu Android SDK.

  3. Po dodaniu biblioteki usług Google Play jako zależności projektu aplikacji otwórz plik manifestu aplikacji i dodaj podany niżej 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 w Proguard

Aby zapobiec usuwaniu przez ProGuard wymaganych klas, 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