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 umożliwiają tworzenie reklam, zbieranie danych analitycznych, uwierzytelnianie użytkowników, integrację map i wiele innych działań. 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.

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 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 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 tys., kompilacja aplikacji może się nie udać. Możesz ograniczyć ten problem 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.

Inne IDE

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