Wymagania wstępne
- Zainstaluj najnowszą wersję Android SDK za pomocą SDK Manager.
- Zainstaluj najnowszą wersję bibliotek AndroidX appcompat i mediarouter za pomocą Menedżera pakietu SDK Androida.
- Zainstaluj najnowszy pakiet Cast SDK w Usługach Google Play za pomocą Menedżera pakietu SDK na Androida.
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 szerokiego zakresu interfejsów API, które umożliwiają tworzenie reklam, zbieranie danych analitycznych, uwierzytelnianie użytkowników, integrowanie map i wiele innych działań. Więcej informacji znajdziesz w omówieniu Usług Google Play. Ważne jest, aby na urządzeniu użytkownika była zainstalowana prawidłowa wersja 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:
- Otwórz plik
build.gradlew katalogu modułu aplikacji.Uwaga: projekty Android Studio zawierają plik najwyższego poziomu
build.gradlei plikbuild.gradledla 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. - Sprawdź, czy
google()znajduje się na liścierepositories.repositories {google() } - Dodaj nową regułę kompilacji w sekcji
dependenciesdla najnowszej wersjiplay-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 zostaną zaktualizowane.
Uwaga: jeśli liczba odwołań do metod w aplikacji przekracza 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, z których korzysta Twoja aplikacja, zamiast wszystkich. Więcej informacji o tym, jak to zrobić, znajdziesz w artykule Selektywne kompilowanie interfejsów API do pliku wykonywalnego.
- 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:
- Skopiuj projekt biblioteki z
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/do lokalizacji, w której przechowujesz projekty aplikacji na Androida. - 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 Programu bibliotecznego Library Project 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 Android SDK.
- 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 :
-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