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 wielu interfejsów API do tworzenia reklam, zbierania danych analitycznych, uwierzytelniania użytkowników, integrowania map i wielu innych celów. Więcej informacji znajdziesz w artykule Omówienie usług Google Play. Musisz sprawdzić, czy na urządzeniu użytkownika został zainstalowany odpowiedni plik APK Usług Google Play, bo aktualizacje mogą nie dotrzeć do wszystkich użytkowników od razu.

Dodaj Usługi Google Play do projektu

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

Android Studio

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

  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 Tworzenie projektu za pomocą Gradle.

  2. Sprawdź, czy google() jest uwzględniony 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.4.0'
        }
    

    Pamiętaj, by aktualizować ten numer wersji po każdej aktualizacji Usług Google Play.

    Uwaga: jeśli liczba odwołań do metod w aplikacji przekracza limit 65 tys., może się to nie udać. Aby zapobiec temu problemowi podczas kompilowania aplikacji, możesz określić tylko konkretne interfejsy API Usług Google Play, z których korzysta Twoja aplikacja, a nie wszystkie. Aby dowiedzieć się, jak to zrobić, przeczytaj artykuł na temat selektywnego kompilowania interfejsów API w plik wykonywalny.

  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 dla aplikacji:

  1. Skopiuj projekt biblioteki z lokalizacji <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łaj się do projektu biblioteki Usług Google Play. Więcej informacji znajdziesz w artykule odwoływanie się do projektu bibliotecznego Library Project w wierszu poleceń.

    Uwaga: podaj kopię biblioteki skopiowanej do obszaru roboczego programowania. Nie odwołuj się do biblioteki bezpośrednio z katalogu pakietu Android SDK.

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

Po skonfigurowaniu wykorzystania projektu biblioteki na potrzeby projektu bibliotecznego 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 w 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