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ć osobno.

Uwaga: Usługi Google Play zapewniają dostęp do wielu interfejsów API, które umożliwiają tworzenie reklam, zbieranie danych analitycznych, uwierzytelnianie użytkowników, integrowanie map i wiele innych. Więcej informacji znajdziesz w artykule Omówienie Usług Google Play. Ważne jest, aby upewnić się, że na urządzeniu użytkownika jest zainstalowana prawidłowa wersja pliku APK Usług Google Play zainstalowana , 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 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 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. 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.3.1'
        }

    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 złagodzić ten problem podczas kompilowania aplikacji, określają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 Selektywne kompilowanie interfejsów API do pliku wykonywalnego.

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

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 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 na ten temat znajdziesz w artykule Odwoływanie się do Programu bibliotecznego Library Project w wierszu poleceń.

    Uwaga: należy odwoływać się do kopii biblioteki skopiowanej do obszaru roboczego programisty, a nie bezpośrednio do biblioteki w katalogu Android SDK.

  3. Po dodaniu biblioteki Usług Google Play jako zależności do projektu 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.

Utwórz wyjątek Proguard

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

-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