Przesyłany plik APK musi spełniać wymagania Google Play dotyczące docelowego poziomu interfejsu API.
Od 31 sierpnia 2025 r.:
- Nowe aplikacje i aktualizacje aplikacji przesyłane do Google Play muszą być kierowane na Androida 15 (API na poziomie 35) lub nowszego. Nie dotyczy to aplikacji na Wear OS, na system operacyjny Android Automotive i na Androida TV, które muszą być kierowane na Androida 14 (API na poziomie 34) lub nowszego.
- Istniejące aplikacje muszą być kierowane na Androida 14 (API na poziomie 34) lub nowszego, aby pozostały dostępne dla nowych użytkowników na urządzeniach z systemem operacyjnym Android nowszym niż docelowy poziom API aplikacji. Aplikacje, które są kierowane na Androida 13 (API na poziomie 33) lub starszego, w tym Androida 12 (API na poziomie 31) lub starszego w przypadku Wear OS i Androida TV, będą dostępne tylko na urządzeniach z systemem operacyjnym Android z interfejsem API na docelowym poziomie takim samym jak dla danej aplikacji lub niższym.
Jeśli potrzebujesz więcej czasu na zaktualizowanie aplikacji, możesz poprosić o przedłużenie terminu do 1 listopada 2025 r. Formularze przedłużenia terminu dla Twojej aplikacji będą dostępne w Konsoli Play jeszcze w tym roku.
Przykładowe wyjątki od tych wymagań:
- Aplikacje zawsze prywatne, które są dostępne tylko dla użytkowników w konkretnej organizacji i przeznaczone wyłącznie do dystrybucji wewnętrznej.
Dlaczego warto kierować reklamy na nowsze pakiety SDK?
Każda nowa wersja Androida wprowadza zmiany, które poprawiają bezpieczeństwo i wydajność, a także zwiększają wygodę korzystania z tego systemu. Niektóre z tych zmian dotyczą tylko aplikacji, które wyraźnie deklarują obsługę za pomocą atrybutu manifestu targetSdkVersion
(nazywanego też docelowym poziomem interfejsu API).
Skonfigurowanie aplikacji pod kątem aktualnego poziomu interfejsu API zapewnia użytkownikom korzyści wynikające z tych ulepszeń, ale jednocześnie pozwala uruchamiać ją w starszych wersjach Androida. Kierowanie aplikacji na aktualny poziom interfejsu API umożliwia też korzystanie z najnowszych funkcji platformy, które mogą być atrakcyjne dla użytkowników. Poza tym od Androida 10 (API na poziomie 29) użytkownicy widzą ostrzeżenie, gdy po raz pierwszy uruchamiają aplikację, która jest kierowana na Androida 5.1 (API na poziomie 22) lub starszego.
W tym dokumencie znajdziesz najważniejsze informacje, które musisz znać, aby zaktualizować docelowy poziom interfejsu API i spełnić wymagania Google Play. Instrukcje znajdziesz w sekcjach poniżej, w zależności od tego, do której wersji przeprowadzasz migrację.
.Przejście z Androida 12 i nowszych wersji (poziom API 31) na nowszą wersję
Aby zaktualizować aplikację i kierować ją na nowszą wersję Androida, zapoznaj się z odpowiednią listą zmian w zachowaniu:
- Zmiany w działaniu Androida 13
- Zmiany w działaniu Androida 14
- Zmiany w działaniu Androida 15
- Zmiany w działaniu Androida 16
Przejście z Androida 11 (poziom API 30) na Androida 12 (poziom API 31)
Zabezpieczenia i uprawnienia
- Bluetooth: musisz zastąpić deklaracje uprawnień
BLUETOOTH
iBLUETOOTH_ADMIN
uprawnieniamiBLUETOOTH_SCAN
,BLUETOOTH_ADVERTISE
lubBLUETOOTH_CONNECT
. Nie musisz już wysyłaćLOCATION
próśb o uprawnienia w czasie działania aplikacji w przypadku operacji Bluetooth. - Lokalizacja: użytkownicy mogą prosić aplikacje o pobieranie tylko przybliżonych informacji o lokalizacji. Za każdym razem, gdy wysyłasz prośbę o
ACCESS_FINE_LOCATION
, musisz też wysłać prośbę o uprawnienieACCESS_COARSE_LOCATION
.- Filtry intencji: jeśli aplikacja zawiera aktywności, usługi lub odbiorniki, które korzystają z filtrów intencji, musisz wyraźnie zadeklarować atrybut android:exported dla tych komponentów.
- Hibernacja: aplikacje mogą być wprowadzane w stan hibernacji, jeśli nie są używane przez pewien czas. W trybie hibernacji uprawnienia w czasie działania i pamięć podręczna aplikacji są resetowane, a Ty nie możesz uruchamiać zadań ani alertów. Możesz sprawdzić stan hibernacji aplikacji.
- Zmienność intencji oczekującej: musisz określić zmienność każdego obiektu PendingIntent tworzonego przez aplikację.
Interfejs użytkownika
- Powiadomienia niestandardowe: powiadomienia z niestandardowymi widokami treści nie będą już zajmować całego obszaru powiadomień. Zamiast tego system zastosuje standardowy szablon. Ten szablon zapewnia, że niestandardowe powiadomienia mają taki sam wygląd jak inne powiadomienia we wszystkich stanach. Działanie to jest niemal identyczne z działaniem
Notification.DecoratedCustomViewStyle
. - Zmiany w weryfikacji linków do aplikacji na Androida: jeśli używasz weryfikacji linków do aplikacji na Androida, upewnij się, że filtry intencji zawierają kategorię BROWSABLE i obsługują schemat HTTPS.
Wydajność
Ograniczenia dotyczące uruchamiania usług na pierwszym planie: aby kierować aplikację na Androida 12 lub nowszego, nie możesz uruchamiać usług na pierwszym planie, gdy aplikacja działa w tle, z wyjątkiem kilku szczególnych przypadków. Jeśli aplikacja działająca w tle spróbuje uruchomić usługę działającą na pierwszym planie, wystąpi wyjątek (z wyjątkiem kilku szczególnych przypadków).
Rozważ użycie WorkManagera do planowania i rozpoczynania przyspieszonej pracy, gdy aplikacja działa w tle. Aby wykonać działania wymagające natychmiastowej reakcji, o które prosi użytkownik, uruchamiaj usługi na pierwszym planie w ramach alarmu precyzyjnego.
Ograniczenia dotyczące powiadomień: gdy użytkownicy klikają powiadomienia, niektóre aplikacje uruchamiają komponent, który rozpoczyna działanie, z którym użytkownik wchodzi w interakcję. Ten komponent aplikacji jest nazywany trampoliną powiadomień.
Aplikacje nie mogą rozpoczynać działań z usług ani odbiorników transmisji, które są używane jako trampoliny powiadomień. Gdy użytkownik kliknie powiadomienie lub przycisk działania w powiadomieniu, aplikacja nie może wywoływać funkcji
startActivity()
w usłudze ani w odbiorniku transmisji.
Zobacz pełną listę zmian, które mają wpływ na aplikacje kierowane na Androida 12 (API na poziomie 31).
Przejście z wersji starszej niż Android 11 (poziom API 30)
Wybierz wersję Androida, z której chcesz przenieść dane:
Przejście na Androida 5 (poziom API 21)
Zapoznaj się ze stronami dotyczącymi zmian w działaniu poszczególnych wersji, aby upewnić się, że Twoja aplikacja uwzględnia zmiany wprowadzone w tych wersjach:
Aby kontynuować, postępuj zgodnie z instrukcjami w następnej sekcji.
Migracja do Androida 6 (poziom interfejsu API 23)
W przypadku aplikacji kierowanych na Androida 6.0 i nowsze wersje platformy obowiązują te kwestie:
-
-
Niebezpieczne uprawnienia są przyznawane tylko w czasie działania aplikacji. Interfejsy przepływów muszą umożliwiać przyznawanie tych uprawnień.
-
W miarę możliwości zadbaj o to, aby aplikacja była przygotowana na odrzucenie próśb o przyznanie uprawnień. Jeśli na przykład użytkownik odrzuci prośbę o dostęp do GPS-u urządzenia, upewnij się, że aplikacja może kontynuować działanie w inny sposób.
-
Pełną listę zmian wprowadzonych w Androidzie 6.0 (poziom interfejsu API 23) znajdziesz na stronie Zmiany w działaniu dotyczącej tej wersji platformy.
Aby kontynuować, postępuj zgodnie z instrukcjami w następnej sekcji.
Przejście na Androida 7 (poziom interfejsu API 24)
W przypadku aplikacji kierowanych na Androida 7.0 i nowsze wersje platformy obowiązują te kwestie:
-
Uśpienie i tryb gotowości aplikacji
Projektuj aplikacje pod kątem zachowań opisanych w artykule Optymalizacja pod kątem funkcji Uśpienie i Czuwanie aplikacji, który obejmuje stopniowe zmiany wprowadzane w kilku wersjach platformy.
Gdy urządzenie jest w trybie uśpienia lub czuwania aplikacji, system działa w ten sposób:
- Ogranicza dostęp do sieci
- odkłada alarmy, synchronizacje i zadania;
- Ogranicza skanowanie GPS i Wi-Fi
- Ogranicza wiadomości Komunikacji w chmurze Firebase o normalnym priorytecie.
-
Zmiany uprawnień
- System ogranicza dostęp do prywatnych katalogów aplikacji.
-
Udostępnienie identyfikatora URI
file://
poza aplikacją wywołujeFileUriExposedException
. Jeśli musisz udostępniać pliki poza aplikację, zaimplementujFileProvider
-
System uniemożliwia łączenie z bibliotekami innymi niż NDK.
Pełną listę zmian wprowadzonych w Androidzie 7.0 (poziom API 24) znajdziesz na stronie Zmiany zachowania dotyczącej tej wersji platformy.
Aby kontynuować, postępuj zgodnie z instrukcjami w następnej sekcji.
Migracja do Androida 8 (poziom 26 interfejsu API)
W przypadku aplikacji kierowanych na Androida 8.0 i nowsze wersje platformy obowiązują te kwestie:
-
Limity wykonywania w tle
-
System ogranicza usługi dla aplikacji, które nie są uruchomione na pierwszym planie.
-
startService()
zgłasza teraz wyjątek, gdy aplikacja próbuje go wywołać, astartService()
jest zabronione. -
Aby uruchomić usługi na pierwszym planie, aplikacja musi używać
startForeground()
istartForegroundService()
. - Dokładnie zapoznaj się ze zmianami wprowadzonymi w interfejsie JobScheduler API, które zostały opisane na stronie ze zmianami w zachowaniu w Androidzie 8.0 (poziom 26 interfejsu API).
- Firebase Cloud Messaging wymaga pakietu SDK Usług Google Play w wersji 10.2.1 lub nowszej.
- W przypadku korzystania z Komunikacji w chmurze Firebase dostarczanie wiadomości podlega limitom wykonywania w tle. Jeśli po otrzymaniu wiadomości konieczne jest wykonanie pracy w tle, np. synchronizacja danych w tle, aplikacja powinna planować zadania za pomocą Firebase Job Dispatcher lub JobIntentService. Więcej informacji znajdziesz w dokumentacji Firebase Cloud Messaging.
-
-
Komunikaty ogólne
-
Implicite transmisje są ograniczone. Informacje o obsłudze zdarzeń w tle znajdziesz w dokumentacji interfejsu
JobScheduler
API.
-
Implicite transmisje są ograniczone. Informacje o obsłudze zdarzeń w tle znajdziesz w dokumentacji interfejsu
-
Ograniczenia dotyczące lokalizacji w tle
-
Aplikacje działające w tle mają ograniczony dostęp do danych o lokalizacji.
- Na urządzeniach z Usługami Google Play używaj połączonego dostawcy lokalizacji, aby okresowo otrzymywać aktualizacje lokalizacji.
-
Aplikacje działające w tle mają ograniczony dostęp do danych o lokalizacji.
-
System ogranicza usługi dla aplikacji, które nie są uruchomione na pierwszym planie.
-
Kanały powiadomień
- Właściwości przerywania powiadomień należy definiować dla każdego kanału osobno.
- Aby powiadomienia się wyświetlały, musisz przypisać je do kanału.
-
Ta wersja platformy obsługuje
NotificationCompat.Builder
.
-
Prywatność
- ANDROID_ID jest ograniczony do klucza podpisywania aplikacji.
Pełną listę zmian wprowadzonych w Androidzie 8.0 (poziom interfejsu API 26) znajdziesz na stronie Zmiany zachowania w przypadku tej wersji platformy.
Migracja z Androida 8 (API 26) na Androida 9 (API 28)
-
Zarządzanie zasilaniem
- Zasobniki stanu gotowości aplikacji wprowadzają nowe ograniczenia działania w tle na podstawie zaangażowania w aplikację, takie jak odroczone zadania, alarmy i limity wiadomości o wysokim priorytecie.
- Ulepszenia oszczędzania baterii zwiększają ograniczenia dotyczące aplikacji w trybie gotowości.
-
Uprawnienia usługi działającej na pierwszym planie
- Musisz poprosić o zwykłe uprawnienia
FOREGROUND_SERVICE
(nie o uprawnienia w czasie działania).
- Musisz poprosić o zwykłe uprawnienia
-
Zmiany w zakresie prywatności
- Ograniczony dostęp do czujników w tle
- Ograniczony dostęp do rejestru połączeń, obecnie w grupie uprawnień
CALL_LOG
- Ograniczony dostęp do numerów telefonów, wymagający uprawnień
READ_CALL_LOG
- Ograniczony dostęp do informacji o Wi-Fi
Pełną listę zmian wprowadzonych w Androidzie 9.0 (poziom interfejsu API 28) znajdziesz w sekcji Zmiany zachowania.
Przejście z Androida 9 (poziom 28 interfejsu API) na Androida 10 (poziom 29 interfejsu API)
-
Powiadomienia z intencją pełnoekranową
-
Musisz poprosić o zwykłe uprawnienia
USE_FULL_SCREEN_INTENT
(a nie o uprawnienia w czasie działania).
-
Musisz poprosić o zwykłe uprawnienia
-
Obsługa urządzeń składanych i urządzeń z dużym ekranem
-
Wiele aktywności może być jednocześnie w stanie „wznowiono”, ale tylko jedna z nich jest aktywna.
-
Ta zmiana wpłynie na działanie
onResume()
ionPause()
. -
Nowa koncepcja cyklu życia „najwyżej wznawiany”, którą można wykryć, subskrybując
onTopResumedActivityChanged()
.- Tylko jedna aktywność może być „najwyższą wznowioną”.
-
Ta zmiana wpłynie na działanie
-
Gdy parametr
resizeableActivity
ma wartośćfalse
, aplikacje mogą dodatkowo określać parametrminAspectRatio
, który automatycznie dodaje do aplikacji paski po bokach w przypadku węższych proporcji obrazu.
-
Wiele aktywności może być jednocześnie w stanie „wznowiono”, ale tylko jedna z nich jest aktywna.
-
Zmiany w zakresie prywatności
-
Zakres przechowywania
- Dostęp do pamięci zewnętrznej jest ograniczony tylko do katalogu aplikacji i określonych typów multimediów utworzonych przez aplikację.
-
Ograniczony dostęp do lokalizacji, gdy aplikacja działa w tle, co wymaga zgody na
ACCESS_BACKGROUND_LOCATION
. - Ograniczony dostęp do identyfikatorów, których nie można zresetować, takich jak IMEI i numer seryjny.
-
Ograniczony dostęp do informacji o aktywności fizycznej, takich jak liczba kroków użytkownika, wymagający uprawnienia
ACTIVITY_RECOGNITION
. -
Ograniczony dostęp do niektórych interfejsów API telefonii, Bluetootha i Wi-Fi, wymagający
ACCESS_FINE_LOCATION
zezwolenia. -
Ograniczony dostęp do ustawień Wi-Fi
- Aplikacje nie mogą już bezpośrednio włączać ani wyłączać Wi-Fi. Muszą to robić za pomocą paneli ustawień.
-
Ograniczenia dotyczące inicjowania połączenia z siecią Wi-Fi, które wymagają użycia
WifiNetworkSpecifier
lubWifiNetworkSuggestion
.
-
Zakres przechowywania
Przejście z Androida 10 (poziom 29 interfejsu API) na Androida 11 (poziom 30 interfejsu API)
-
Prywatność
- Wymuszanie dostępu do pamięci w określonym zakresie : aplikacje powinny korzystać z modelu dostępu do pamięci w określonym zakresie, w którym pliki specyficzne dla aplikacji, multimedia i inne typy plików są zapisywane i dostępne w wyznaczonych lokalizacjach.
- Automatyczne resetowanie uprawnień: jeśli użytkownicy nie korzystają z aplikacji przez kilka miesięcy, system automatycznie resetuje jej uprawnienia dostępu do danych wrażliwych. Nie powinno to mieć wpływu na większość aplikacji. Jeśli Twoja aplikacja działa głównie w tle bez interakcji z użytkownikiem, możesz poprosić użytkowników o wyłączenie automatycznego resetowania.
- Dostęp do lokalizacji w tle: aplikacje muszą oddzielnie prosić o dostęp do lokalizacji na pierwszym planie i w tle. Zezwolenie na dostęp do lokalizacji w tle można przyznać tylko w ustawieniach aplikacji, a nie w oknach z prośbą o dostęp do lokalizacji w czasie działania.
-
Widoczność pakietu: gdy aplikacja wysyła zapytanie o listę zainstalowanych aplikacji i usług na urządzeniu, zwracana lista jest filtrowana.
- Jeśli korzystasz z usług zamiany tekstu na mowę lub rozpoznawania mowy, musisz dodać do pliku manifestu elementy zapytań dotyczące tych usług.
-
Bezpieczeństwo
- Skompresowane pliki `resource.arsc` nie są już obsługiwane
- Schemat podpisywania plików APK w wersji 2 jest teraz wymagany. Ze względu na zgodność wsteczną deweloperzy powinni nadal podpisywać aplikacje za pomocą schematu podpisu plików APK w wersji 1.
- Ograniczenie interfejsu innego niż SDK. Używanie interfejsów innych niż SDK nie jest zalecane w przypadku aplikacji kierowanych na poziom API 30, ponieważ niektóre z tych interfejsów są teraz blokowane. Pełną listę zablokowanych interfejsów innych niż SDK znajdziesz w artykule Interfejsy inne niż SDK, które są teraz blokowane w Androidzie 11.
Pełną listę zmian wprowadzonych w Androidzie 11 (poziom API 30) znajdziesz na stronie Zmiany w działaniu.
Kontynuuj aktualizację do interfejsu API w wersji 31, postępując zgodnie z instrukcjami w poprzedniej sekcji.
Modernizowanie aplikacji
Podczas aktualizowania docelowego poziomu interfejsu API aplikacji rozważ wprowadzenie najnowszych funkcji platformy, aby zmodernizować aplikacje i zadowolić użytkowników.
- Aby w pełni wykorzystać możliwości aparatu, możesz użyć biblioteki CameraX, która jest w wersji beta.
- Używaj komponentów Jetpack, aby stosować sprawdzone metody, nie musieć pisać powtarzalnego kodu i upraszczać złożone zadania, dzięki czemu możesz skupić się na kodzie, który Cię interesuje.
- Używaj Kotlina, aby pisać lepsze aplikacje szybciej i z mniejszą ilością kodu.
- Przestrzegaj wymagań i sprawdzonych metod dotyczących prywatności.
- Dodaj do aplikacji obsługę ciemnego motywu.
- Dodaj do aplikacji obsługę nawigacji przy użyciu gestów.
- Przenieś aplikację z Google Cloud Messaging (GCM) do najnowszej wersji Komunikacji w chmurze Firebase.
- Korzystaj z zaawansowanego zarządzania oknami.
- obsługiwać większe formaty obrazu (ponad 16:9), aby wykorzystać najnowsze osiągnięcia w zakresie sprzętu; Sprawdź, czy aplikacja zmienia rozmiar, aby wypełnić dostępną przestrzeń ekranu. Maksymalny współczynnik proporcji deklaruj tylko w ostateczności. Więcej informacji o maksymalnych współczynnikach proporcji znajdziesz w sekcji Deklarowanie obsługi ekranów o ograniczonej funkcjonalności.
- Dodaj obsługę wielu okien, aby zwiększyć produktywność aplikacji i zarządzać wieloma wyświetlaczami.
- Jeśli zminimalizowana aplikacja poprawi komfort użytkowników, dodaj obsługę obrazu w obrazie.
- Optymalizacja pod kątem urządzeń z wycięciem na wyświetlaczu.
- Nie zakładaj wysokości paska stanu. Zamiast tego użyj interfejsów
WindowInsets
iView.OnApplyWindowInsetsListener
. Więcej informacji znajdziesz w filmie droidcon NYC 2017. - Nie zakładaj, że aplikacja zajmuje całe okno. Zamiast tego potwierdź lokalizację za pomocą
View.getLocationInWindow()
, a nieView.getLocationOnScreen()
. * Podczas obsługiMotionEvent
używajMotionEvent.getX()
iMotionEvent.getY()
, a nieMotionEvent.getRawX()
aniMotionEvent.getRawY()
.
Sprawdzanie i aktualizowanie pakietów SDK i bibliotek
Sprawdź, czy zależności pakietu SDK innej firmy obsługują interfejs API 31: niektórzy dostawcy pakietów SDK publikują tę informację w swoim pliku manifestu, a w innych przypadkach konieczne będzie dodatkowe sprawdzenie. Jeśli używasz pakietu SDK, który nie obsługuje interfejsu API 31, priorytetowo potraktuj współpracę z dostawcą pakietu SDK w celu rozwiązania problemu.
Pamiętaj też, że targetSdkVersion
Twoja aplikacja lub gra może ograniczać dostęp do prywatnych bibliotek platformy Android. Więcej informacji znajdziesz w artykule Łączenie aplikacji NDK z bibliotekami platformy.
Sprawdź też wszelkie ograniczenia, które mogą występować w używanej wersji biblioteki pomocy Androida. Jak zawsze musisz zadbać o zgodność głównej wersji Biblioteki pomocy Androida z compileSdkVersion
aplikacji.
Zalecamy wybór wersji targetSdkVersion
mniejszej lub równej głównej wersji biblioteki pomocy. Zachęcamy do zaktualizowania biblioteki pomocy do najnowszej
kompatybilnej wersji, aby korzystać z najnowszych funkcji
zgodności i poprawek błędów.
Testowanie aplikacji
Po zaktualizowaniu poziomu interfejsu API i funkcji aplikacji w odpowiedni sposób przetestuj niektóre podstawowe przypadki użycia. Poniższe sugestie nie są wyczerpujące, ale mają na celu ułatwienie Ci procesu testowania. Sugerujemy przetestowanie:
- Aplikacja jest kompilowana do interfejsu API 29 bez błędów i ostrzeżeń.
Aplikacja ma strategię na wypadek, gdy użytkownik odrzuci prośby o uprawnienia, i wyświetla prośby o uprawnienia. Aby to zrobić:
- Otwórz ekran Informacje o aplikacji i wyłącz wszystkie uprawnienia.
- Otwórz aplikację i upewnij się, że nie ulega awarii.
- Przeprowadź testy podstawowych przypadków użycia i sprawdź, czy wymagane uprawnienia są ponownie wyświetlane.
Obsługuje tryb uśpienia z oczekiwanymi wynikami i bez błędów.
- Za pomocą adb wprowadź urządzenie testowe w tryb uśpienia, gdy aplikacja jest uruchomiona.
- Przetestuj wszystkie przypadki użycia, które wywołują wiadomości Komunikacji w chmurze Firebase.
- Przetestuj wszystkie przypadki użycia, które korzystają z alarmów lub zadań.
- Wyeliminuj zależności od usług działających w tle.
- Ustawianie aplikacji w trybie gotowości
- Przetestuj wszystkie przypadki użycia, które wywołują wiadomości Komunikacji w chmurze Firebase.
- Testuj wszystkie przypadki użycia, w których wykorzystywane są alarmy.
- Za pomocą adb wprowadź urządzenie testowe w tryb uśpienia, gdy aplikacja jest uruchomiona.
Obsługuje robienie nowych zdjęć i nagrywanie filmów
- Sprawdź, czy aplikacja obsługuje ograniczone
ACTION_NEW_PICTURE
iACTION_NEW_VIDEO
transmisje prawidłowo (tzn. przeniesione do zadań JobScheduler). - Upewnij się, że wszystkie kluczowe przypadki użycia, które zależą od tych zdarzeń, nadal działają.
- Sprawdź, czy aplikacja obsługuje ograniczone
Obsługuje udostępnianie plików innym aplikacjom. - Testuj dowolny przypadek użycia, w którym dane z pliku są udostępniane innej aplikacji (nawet innej aplikacji tego samego dewelopera).
- Sprawdź, czy treść jest widoczna w innej aplikacji i nie powoduje awarii.
Dodatkowe informacje
Zezwól na otrzymywanie e-maili w Konsoli Google Play, abyśmy mogli wysyłać Ci ważne aktualizacje i ogłoszenia dotyczące Androida i Google Play, w tym nasz miesięczny newsletter dla partnerów.