Wymagania wstępne
- Zainstaluj najnowszą wersję pakietu Android SDK za pomocą Menedżera pakietu Android SDK.
- Zainstaluj najnowszą wersję bibliotek AndroidX appcompat i mediarouter za pomocą Menedżera pakietu SDK Androida.
- Zainstaluj najnowszy pakiet SDK Cast w usługach Google Play za pomocą Menedżera pakietów SDK Androida.
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 można wykorzystać do tworzenia reklam, zbierania danych analitycznych, uwierzytelniania użytkowników, integrowania map i do wielu innych celów. 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.
Aby udostępnić interfejsy API Usług Google Play w aplikacji:
- Otwórz plik
build.gradle
w katalogu modułu aplikacji.Uwaga: projekty w Android Studio zawierają plik
build.gradle
najwyższego poziomu i plikbuild.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. - Sprawdź, czy
google()
jest uwzględniona w wymienionychrepositories
.repositories {
- Dodaj nową regułę kompilacji w sekcji
dependencies
dla najnowszej wersji aplikacjiplay-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.0.0' }
Pamiętaj, aby aktualizować ten numer wersji za każdym razem, gdy aktualizujesz Usługi Google Play.
Uwaga: jeśli liczba odwołań do metod w aplikacji przekroczy 65 tys. znaków, kompilacja aplikacji może się nie udać. Ten problem możesz rozwiązać 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.
- Zapisz zmiany i na pasku narzędzi kliknij Synchronizuj projekt z plikami Gradle.
Aby udostępnić interfejsy API Usług Google Play w aplikacji:
- 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. - 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.
- 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
:
-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