Wymagania wstępne
- Zainstaluj najnowszą wersję pakietu SDK na Androida za pomocą narzędzia Android SDK Manager.
- Zainstaluj najnowszą wersję biblioteki AndroidaX aplikacji appcompat i mediarouter za pomocą menedżera pakietów SDK Androida.
- Zainstaluj najnowszy pakiet SDK Cast w Usługach Google Play za pomocą Menedżera SDK Android.
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 różnych interfejsów API do tworzenia reklam, zbierania statystyk, uwierzytelniania użytkowników, integrowania map i wielu innych celów. Więcej informacji znajdziesz w artykule Omówienie usług Google Play. Musisz upewnić się, że na urządzeniu użytkownika jest zainstalowany odpowiedni pakiet APK Usług Google Play, ponieważ aktualizacje mogą nie dotrzeć od razu do wszystkich użytkowników.
Dodaj Usługi Google Play do projektu
Wybierz poniżej środowisko programistyczne i dodaj Usługi Google Play do swojego projektu, postępując zgodnie z instrukcjami.
Android Studio
Aby udostępnić w aplikacji interfejsy API Usług Google Play:
- Otwórz plik
build.gradle
w katalogu modułu aplikacji.Uwaga: projekty Android Studio zawierają plik
build.gradle
najwyższego poziomu i plikbuild.gradle
dla każdego modułu. Pamiętaj, aby edytować plik modułu aplikacji. Więcej informacji o Gradle znajdziesz w artykule o tworzeniu projektu z użyciem Gradle. - Sprawdź, czy
google()
znajduje się na liścierepositories
.repositories {
- Dodaj nową regułę kompilacji w sekcji
dependencies
dla najnowszej wersjiplay-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.5.0' }
Pamiętaj, aby aktualizować ten numer przy każdej aktualizacji Usług Google Play.
Uwaga: jeśli liczba odwołań do metod w aplikacji przekracza limit 65 tys., aplikacja może się nie skompilować. Możesz zapobiec temu problemowi podczas kompilowania aplikacji, określając tylko konkretne interfejsy API Usług Google Play, których używa Twoja aplikacja, a nie wszystkie. Informacje o tym, jak to zrobić, znajdziesz w artykule Selektywne kompilowanie interfejsów API do plików wykonywalnych.
- Zapisz zmiany i na pasku narzędzi kliknij Synchronizuj projekt z plikami Gradle.
Inne IDE
Aby udostępnić w aplikacji interfejsy API Usług Google Play:
- Skopiuj projekt biblioteki z
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/
do lokalizacji, w której zarządzasz projektami aplikacji na Androida. - 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 bibliotecznego Library Project w wierszu poleceń.
Uwaga: musisz odwoływać się do kopii biblioteki skopiowanej do obszaru roboczego programowania – nie odwoływać się do biblioteki bezpośrednio z katalogu Android SDK.
- Po dodaniu biblioteki usług Google Play jako zależności dla projektu aplikacji otwórz plik manifestu 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łuje 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 usuwaniu wymaganych klas przez ProGuard, dodaj do pliku
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