Przesyłany plik APK musi spełniać wymagania Google Play dotyczące docelowego poziomu interfejsu API.
Od 31 sierpnia 2024 r.:
- nowe aplikacje i aktualizacje aplikacji przesyłane do Google Play muszą być kierowane na Androida 14 (API na poziomie 34) lub nowszego (nie dotyczy to aplikacji na Wear OS i Androida TV, które muszą być kierowane na Androida 13 (API na poziomie 33) lub nowszego);
- Istniejące aplikacje muszą być kierowane na Androida 13 (API na poziomie 33) lub nowszego, aby były dostępne dla nowych użytkowników na urządzeniach z systemem operacyjnym Android w wersji wyższej niż docelowy poziom interfejsu API aplikacji. Aplikacje kierowane na Androida 12 (poziom interfejsu API 31) lub niższym (Android 10 (poziom interfejsu API 29) lub niższy w przypadku Wear OS oraz Androida 11 (poziom interfejsu API 30) lub niższy w przypadku Androida TV będą dostępne tylko na urządzeniach z systemem operacyjnym Android, który jest taki sam lub niższy niż docelowy poziom interfejsu API aplikacji.
Jeśli potrzebujesz więcej czasu na zaktualizowanie aplikacji, możesz poprosić o przedłużenie tego terminu do 1 listopada 2024 r. Formularze przedłużenia 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.
- Aplikacje kierowane na format systemu operacyjnego Android Automotive lub pakowane z plikami APK kierowanymi na ten format systemu.
Dlaczego warto kierować reklamy na nowsze pakiety SDK?
Każda nowa wersja Androida wprowadza zmiany, które poprawiają bezpieczeństwo i wydajność oraz zwiększają wygodę użytkowników tego systemu. Niektóre z tych zmian dotyczą tylko aplikacji, które bezpośrednio deklarują obsługę za pomocą atrybutu manifestu targetSdkVersion
(nazywanego też docelowym poziomem interfejsu API).
Kierowanie aplikacji na aktualny poziom 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 najnowszy poziom interfejsu API pozwala jej korzystać z najnowszych funkcji platformy, aby zadowolić użytkowników. Ponadto od Androida 10 (poziom interfejsu API 29) użytkownicy wyświetlają ostrzeżenie przy pierwszym uruchomieniu aplikacji, jeśli jest ona kierowana na Androida 5.1 (poziom interfejsu API 22) lub starszego.
W tym dokumencie znajdziesz ważne informacje, które pomogą Ci zaktualizować docelowy poziom interfejsu API, aby spełniać wymagania Google Play. W zależności od tego, do której wersji chcesz przeprowadzić dane, postępuj zgodnie z instrukcjami podanymi w odpowiednich sekcjach.
Przejście z Androida 12 lub nowszego (poziom API 31) na nowszą wersję
Aby zaktualizować aplikację, aby kierować ją na nowszą wersję Androida, postępuj zgodnie z listą odpowiednich zmian w działaniu aplikacji:
Przejście z Androida 11 (poziom API 30) na Androida 12 (poziom API 31)
Bezpieczeństwo i uprawnienia
- Bluetooth: deklaracje dotyczące uprawnień
BLUETOOTH
iBLUETOOTH_ADMIN
musisz zastąpić uprawnieniamiBLUETOOTH_SCAN
,BLUETOOTH_ADVERTISE
lubBLUETOOTH_CONNECT
. Nie musisz już wysyłać próśb o uprawnienia w czasie działaniaLOCATION
w przypadku operacji Bluetooth. - Lokalizacja: użytkownicy mogą poprosić aplikacje o uzyskanie tylko przybliżonej informacji o lokalizacji. Za każdym razem, gdy wysyłasz prośbę o uprawnienia
ACCESS_FINE_LOCATION
, musisz poprosić o uprawnieniaACCESS_COARSE_LOCATION
.- Filtry intencji: jeśli aplikacja zawiera aktywności, usługi lub odbiorniki transmisji, które korzystają z filtrów intencji, musisz wyraźnie zadeklarować atrybut android:exported dla tych komponentów.
- Hibernacja: aplikacje mogą przejść w tryb hibernacji, jeśli nie są używane przez pewien czas. W trybie hibernacji uprawnienia w czasie działania aplikacji i pamięć podręczna są resetowane, przez co nie można uruchamiać zadań ani alertów. Możesz sprawdzić stan hibernacji aplikacji.
- Zmienność intencji oczekującej: musisz określić zmienność każdego obiektu PendingIntent, który tworzy aplikacja.
Wrażenia użytkownika
- Powiadomienia niestandardowe: powiadomienia z niestandardowymi widokami treści nie będą już korzystać z pełnego obszaru powiadomień. Zamiast tego system zastosuje standardowy szablon. Dzięki temu szablonowi niestandardowe powiadomienia mają takie same elementy dekoracyjne jak inne powiadomienia we wszystkich stanach. Takie działanie jest prawie identyczne z działaniem
Notification.DecoratedCustomViewStyle
. - Zmiany związane z weryfikacją linków aplikacji na Androida: podczas weryfikacji linków 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: jeśli Twoja aplikacja jest kierowana na Androida 12 lub nowszą wersję, nie może uruchamiać usług na pierwszym planie, gdy działa w tle, z wyjątkiem kilku szczególnych przypadków. Jeśli aplikacja próbuje uruchomić usługę na pierwszym planie, gdy działa w tle, występuje wyjątek (z wyjątkiem kilku szczególnych przypadków).
Rozważ użycie WorkManagera do zaplanowania i rozpoczęcia przyspieszonego działania, gdy aplikacja działa w tle. Aby wykonać działania wymagające szybkiego działania na żądanie użytkownika, uruchom usługi na pierwszym planie w ramach alarmu precyzyjnego.
Ograniczenia trampoliny powiadomień: gdy użytkownicy klikają powiadomienia, niektóre aplikacje odpowiadają, uruchamiając komponent aplikacji, który uruchamia aktywność, którą użytkownik widzi i z którą wchodzi w interakcję. Ten komponent aplikacji nazywa się trampoliną powiadomień.
Aplikacje nie mogą uruchamiać działań z usług lub odbiorników transmisji, które są używane jako trampoliny powiadomień. Gdy użytkownik kliknie powiadomienie lub przycisk polecenia w powiadomieniu, aplikacja nie będzie mogła wywołać funkcji
startActivity()
w usłudze lub odbiorniku.
Zobacz pełny zestaw zmian, które mają wpływ na aplikacje kierowane na Androida 12 (poziom API 31).
Przejście z wersji starszej niż Android 11 (poziom API 30)
Wybierz wersję Androida, z której będziesz przeprowadzać migrację:
Przejście na Androida 5 (poziom API 21)
Aby sprawdzić, czy Twoja aplikacja uwzględnia zmiany wprowadzone w tych wersjach, zapoznaj się z odpowiednimi stronami Zmiany zachowania:
Postępuj zgodnie z instrukcjami podanymi w następnej sekcji.
Migracja na Androida 6 (poziom interfejsu API 23)
W przypadku aplikacji kierowanych na Androida 6.0 lub nowszą obowiązują te zasady:
-
-
Zezwolenia na dostęp do danych niebezpiecznych są przyznawane tylko w czasie działania aplikacji. Twoje procesy w interfejsie użytkownika muszą umożliwiać przyznawanie tych uprawnień.
-
W miarę możliwości zadbaj o to, aby aplikacja była przygotowana na odrzucenie żądań przyznania uprawnień. Jeśli na przykład użytkownik odrzuci prośbę o dostęp do GPS-a urządzenia, upewnij się, że aplikacja ma inny sposób działania.
-
Pełną listę zmian wprowadzonych w Androidzie 6.0 (poziom interfejsu API 23) znajdziesz na stronie Zmiany w zachowaniu poświęconej tej wersji platformy.
Kontynuuj, wykonując instrukcje podane w następnej sekcji.
Migracja na Androida 7 (poziom interfejsu API 24)
W przypadku aplikacji kierowanych na Androida 7.0 i nowsze wersje platformy należy wziąć pod uwagę te kwestie:
-
Uśpienie i tryb czuwania aplikacji
Projektowanie z uwzględnieniem zachowań opisanych w artykule Optymalizacja pod kątem funkcji Uśpienie i Czuwanie aplikacji, który obejmuje stopniowe zmiany wprowadzone w kilku wersjach platform.
Gdy urządzenie jest w trybie Uśpienie i Czuwanie aplikacji, system działa w ten sposób:
- Ogranicza dostęp do sieci
- odroczenie alarmów, synchronizacji i zadań;
- Ogranicza skanowanie GPS i Wi-Fi
- Ogranicza liczbę wiadomości o normalnym priorytecie wysyłanych przez Komunikację w chmurze Firebase.
-
Zmiany uprawnień
- System ogranicza dostęp do katalogów prywatnych aplikacji.
-
Wyświetlanie identyfikatora URI
file://
poza aplikacją powodujeFileUriExposedException
. Jeśli chcesz udostępniać pliki poza aplikacją, zaimplementuj:FileProvider
-
System zabrania łączenia z bibliotekami spoza NDK.
Pełną listę zmian wprowadzonych w Androidzie 7.0 (poziom interfejsu API 24) znajdziesz na stronie Zmiany w zachowaniu poświęconej tej wersji platformy.
Kontynuuj, wykonując instrukcje podane w następnej sekcji.
Migracja na Androida 8 (poziom 26 interfejsu API)
W przypadku aplikacji kierowanych na Androida 8.0 i nowsze obowiązują te zasady:
-
Limity wykonywania w tle
-
System ogranicza dostęp do usług dla aplikacji, które nie działają na pierwszym planie.
-
startService()
zgłasza wyjątek, gdy aplikacja próbuje go wywołać, gdystartService()
jest zabroniony. -
Aby uruchomić usługi na pierwszym planie, aplikacja musi używać
startForeground()
istartForegroundService()
. - Uważnie zapoznaj się ze zmianami wprowadzonymi w interfejsie JobScheduler API, które zostały opisane na stronie Zmiany w zachowaniu Androida 8.0 (poziom interfejsu API 26).
- Komunikacja w chmurze Firebase wymaga wersji 10.2.1 pakietu SDK Usług Google Play lub nowszej wersji.
- W przypadku korzystania z Komunikacji w chmurze Firebase dostarczanie wiadomości podlega ograniczeniom wykonywania w tle. Jeśli po otrzymaniu wiadomości konieczne jest wykonanie pracy w tle, np. aby zsynchronizować dane w tle, aplikacja powinna zaplanować zadania za pomocą Dispatchera zadań Firebase lub usługi JobIntentService. Więcej informacji znajdziesz w dokumentacji Komunikacji w chmurze Firebase (FCM).
-
-
Komunikaty ogólne
-
Transmisje pośrednie podlegają ograniczeniom. Informacje o obsługiwaniu zdarzeń w tle znajdziesz w dokumentacji interfejsu API
JobScheduler
.
-
Transmisje pośrednie podlegają ograniczeniom. Informacje o obsługiwaniu zdarzeń w tle znajdziesz w dokumentacji interfejsu API
-
Limity dostępu do 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 korzystaj z połączonego dostawcy lokalizacji, aby otrzymywać okresowe aktualizacje lokalizacji.
-
Aplikacje działające w tle mają ograniczony dostęp do danych o lokalizacji.
-
System ogranicza dostęp do usług dla aplikacji, które nie działają na pierwszym planie.
-
Kanały powiadomień
- Właściwości przerwania powiadomień należy zdefiniować osobno dla każdego kanału.
- Aby powiadomienia się wyświetlały, musisz przypisać je do kanału.
-
Ta wersja platformy obsługuje
NotificationCompat.Builder
.
-
Prywatność
- ANDROID_ID ograniczają się do klucza podpisywania aplikacji.
Wyczerpujący wykaz zmian wprowadzonych w Androidzie 8.0 (poziom interfejsu API 26) znajdziesz na stronie Zmiany w zachowaniu poświęconej tej wersji platformy.
Migracja z Androida 8 (poziom 26 interfejsu API) na Androida 9 (poziom 28 interfejsu API)
-
Zarządzanie zasilaniem
- Zasoby w trybie gotowości aplikacji wprowadzają nowe ograniczenia dotyczące działania w tle oparte na zaangażowaniu w aplikację, takie jak opóźnione zadania, alarmy i limity dotyczące wiadomości o wysokim priorytecie.
- Ulepszenia trybu oszczędzania baterii zwiększenie ograniczeń dotyczących aplikacji w stanie gotowości
-
Uprawnienia usługi na pierwszym planie
- Trzeba poprosić o normalne uprawnienia
FOREGROUND_SERVICE
(a nie o uprawnienia w czasie działania)
- Trzeba poprosić o normalne uprawnienia
-
Zmiany dotyczące prywatności
- Ograniczony dostęp do czujników działających w tle
- Ograniczony dostęp do rejestrów połączeń, teraz w grupie uprawnień
CALL_LOG
- Ograniczony dostęp do numerów telefonów, wymaga 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 w zachowaniu.
Przejście z Androida 9 (poziom API 28) na Androida 10 (poziom API 29)
-
Powiadomienia z intencją pełnoekranową
-
Musisz poprosić o normalne uprawnienie
USE_FULL_SCREEN_INTENT
(a nie uprawnienie w czasie działania).
-
Musisz poprosić o normalne uprawnienie
-
Obsługa urządzeń składanych i urządzeń z dużym ekranem
-
Wiele działań może być jednocześnie w stanie „w toku”, ale tylko jedno z nich może być aktywne.
-
Ta zmiana wpływa na działanie
onResume()
ionPause()
. -
Nowa koncepcja cyklu życia „najbardziej aktualne wznowione”, którą można wykryć, subskrybując
onTopResumedActivityChanged()
.- Tylko 1 działanie można „wznowić na najwyższym poziomie”.
-
Ta zmiana wpływa na działanie
-
Gdy wartość
resizeableActivity
jest ustawiona nafalse
, aplikacje mogą dodatkowo określać wartośćminAspectRatio
, która automatycznie ustawia format letterbox w przypadku węższego formatu obrazu.
-
Wiele działań może być jednocześnie w stanie „w toku”, ale tylko jedno z nich może być aktywne.
-
Zmiany dotyczące prywatności
-
Ograniczone miejsce na dane
- Dostęp do pamięci zewnętrznej jest ograniczony tylko do katalogu określonej aplikacji oraz do określonych typów multimediów utworzonych przez tę aplikację.
-
Ograniczony dostęp do lokalizacji, gdy aplikacja działa w tle. Wymaga zgody
ACCESS_BACKGROUND_LOCATION
. - Ograniczony dostęp do identyfikatorów, które nie można zresetować, takich jak numer IMEI i numer seryjny.
-
Ograniczony dostęp do informacji o aktywności fizycznej, takich jak liczba kroków użytkownika, wymagających uprawnienia
ACTIVITY_RECOGNITION
. -
Ograniczony dostęp do niektórych interfejsów API telefonii, Bluetooth i Wi-Fi, wymagający uprawnień
ACCESS_FINE_LOCATION
. -
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 nawiązywania połączenia z siecią Wi-Fi, które wymagają użycia:
WifiNetworkSpecifier
lubWifiNetworkSuggestion
.
-
Ograniczone miejsce na dane
Przejście z Androida 10 (poziom 29 interfejsu API) na Androida 11 (poziom 30 interfejsu API)
-
Prywatność.
- Wymóg korzystania z ograniczonego miejsca na dane : aplikacje powinny korzystać z modelu ograniczonego miejsca na dane, w którym pliki związane z aplikacją, multimedia i inne typy plików są zapisywane i dostęp do nich jest uzyskiwany za pomocą dedykowanych lokalizacji.
- Automatyczne resetowanie uprawnień: jeśli użytkownicy nie korzystają z aplikacji przez kilka miesięcy, system automatycznie resetuje uprawnienia dostępu do wrażliwych danych. 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. Dostęp do lokalizacji w tle można przyznać tylko w ustawieniach aplikacji, a nie w oknach z uprawnieniami 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 przekształcania tekstu w mowę lub rozpoznawania mowy, musisz dodać elementy zapytań dotyczących tych usług do pliku manifestu.
-
Zabezpieczenia
- Skompresowane pliki `resource.arsc` nie są już obsługiwane
- Schemat podpisu plików APK w wersji 2 jest teraz wymagany. Ze względu na zgodność wsteczną deweloperzy powinni też nadal podpisywać pliki APK według schematu podpisu plików APK w wersji 1.
- Ograniczenie interfejsu innego niż SDK. W przypadku aplikacji kierowanych na interfejs API na poziomie 30 nie zalecamy korzystania z interfejsów innych niż SDK, ponieważ niektóre z tych interfejsów są teraz zablokowane. Pełną listę zablokowanych interfejsów spoza SDK znajdziesz w artykule o interfejsach innych 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 zachowaniu.
Kontynuuj aktualizację do wersji API 31, wykonując instrukcje podane w poprzedniej sekcji.
Modernizacja aplikacji
Podczas aktualizowania docelowego poziomu interfejsu API swoich aplikacji rozważ zastosowanie najnowszych funkcji platformy, aby unowocześnić aplikacje i zadowolić użytkowników.
- Aby w pełni korzystać z aparatu, rozważ użycie aplikacji CameraX, która jest w wersji beta.
- Korzystaj ze składników Jetpacka, aby stosować się do sprawdzonych metod, unikać pisania szablonowego kodu i upraszczać skomplikowane zadania, dzięki czemu możesz skupić się na kodzie, który jest dla Ciebie ważny.
- Używaj Kotlina, aby szybciej i z mniejszą ilością kodu pisać lepsze aplikacje.
- Przestrzegaj wymagań i sprawdzonych metod dotyczących prywatności.
- Dodaj do aplikacji obsługę ciemnego motywu.
- Dodaj do swoich aplikacji obsługę nawigacji za pomocą gestów.
- Przenieś aplikację z Google Cloud Messaging (GCM) do najnowszej wersji Komunikacji w chmurze Firebase.
- korzystać z zaawansowanych funkcji zarządzania oknami.
- Obsługa większych formatów obrazu (większych niż 16:9), aby korzystać z ostatnich osiągnięć w zakresie sprzętu. Upewnij się, że rozmiar aplikacji dostosowuje się do dostępnej przestrzeni na ekranie. Maksymalny współczynnik proporcji należy zadeklarować tylko w ostateczności. Więcej informacji o maksymalnych współczynnikach proporcji znajdziesz w artykule Oświadczenie o obsługiwaniu ekranów ograniczonych.
- Dodaj obsługę wielu okien, aby zwiększyć produktywność aplikacji, a także zarządzać wieloma wyświetlaczami.
- Jeśli świetna, zminimalizowana aplikacja zwiększa wygodę użytkowników, dodaj obsługę obrazu w obrazie.
- Optymalizacja pod kątem urządzeń z wycięciem w ekranie.
- Nie zakładaj, że wysokość paska stanu jest stała. Zamiast niego użyj
WindowInsets
iView.OnApplyWindowInsetsListener
. Więcej informacji znajdziesz w tym filmie z droidcon NYC 2017. - Nie zakładaj, że aplikacja ma cały ekran. Aby potwierdzić lokalizację urządzenia, użyj
View.getLocationInWindow()
, a nieView.getLocationOnScreen()
. * Podczas obsługiMotionEvent
używaj wartościMotionEvent.getX()
iMotionEvent.getY()
, a nieMotionEvent.getRawX()
aniMotionEvent.getRawY()
.
Sprawdzanie i aktualizowanie pakietów SDK oraz bibliotek
Upewnij się, że pakiety SDK innych firm, na których Twoja aplikacja jest zależna, obsługują interfejs API 31. Niektórzy dostawcy pakietów SDK publikują go w pliku manifestu, ale w przypadku innych może być konieczne sprawdzenie tego samodzielnie. Jeśli używasz pakietu SDK, który nie obsługuje interfejsu API 31, postaraj się jak najszybciej rozwiązać ten problem, kontaktując się z dostawcą pakietu SDK.
Pamiętaj też, że targetSdkVersion
Twojej aplikacji lub gry może ograniczać dostęp do prywatnych bibliotek platformy Androida. Więcej informacji znajdziesz w artykule NDK Apps Linking to Platform Libraries.
Sprawdź też, czy w wersji biblioteki Android Support Library, której używasz, występują jakieś ograniczenia. Jak zawsze musisz zadbać o zgodność głównej wersji Biblioteki pomocy Androida z compileSdkVersion
Twojej aplikacji.
Zalecamy wybranie targetSdkVersion
mniejszej lub równej głównej wersji biblioteki pomocy. Zachęcamy do zaktualizowania biblioteki wsparcia do najnowszej zgodnej wersji, aby korzystać z najnowszych funkcji zgodności i poprawek błędów.
Testowanie aplikacji
Po zaktualizowaniu poziomu interfejsu API i odpowiednich funkcji aplikacji przetestuj kilka podstawowych przypadków użycia. Poniższe sugestie nie są wyczerpujące, ale mają na celu ułatwić Ci proces testowania. Zalecamy przetestowanie:
- Aplikacja kompiluje się na interfejs API 29 bez błędów ani ostrzeżeń.
że Twoja aplikacja ma strategię na wypadek, gdy użytkownik odrzuci prośby o przyznanie uprawnień, i prosi o te uprawnienia. Aby to zrobić:
- Otwórz ekran Informacje o aplikacji i wyłącz po kolei wszystkie uprawnienia.
- Otwórz aplikację i sprawdź, czy nie ulega awarii.
- Przeprowadź testy przypadków użycia i upewnij się, że wymagane uprawnienia są ponownie wyświetlane.
Obsługuje Doze z oczekiwanymi wynikami i bez błędów.
- Użyj adb, aby umieścić urządzenie testowe w trybie Doze, gdy aplikacja jest uruchomiona.
- Przetestuj wszystkie przypadki użycia, które aktywują wiadomości Komunikacja w chmurze Firebase (FCM).
- Testuj przypadki użycia, które wykorzystują alarmy lub zadania.
- Usuń wszystkie zależności od usług działających w tle.
- Przełącz aplikację w tryb wstrzymania.
- Testowanie wszystkich przypadków użycia, które powodują wysyłanie wiadomości w Komunikacji w chmurze Firebase (FCM).
- Przetestuj wszystkie przypadki użycia, które używają alarmów.
- Użyj adb, aby umieścić urządzenie testowe w trybie Doze, gdy aplikacja jest uruchomiona.
Obsługuje nowe zdjęcia / filmy
- Sprawdź, czy aplikacja obsługuje transmisje
ACTION_NEW_PICTURE
iACTION_NEW_VIDEO
(czyli przenosi je do zadań JobScheduler). - Upewnij się, że wszystkie krytyczne przypadki użycia, które zależą od tych zdarzeń, nadal działają.
- Sprawdź, czy aplikacja obsługuje transmisje
Obsługa udostępniania plików innym aplikacjom – przetestuj każdy przypadek użycia, który udostępnia dane plików innej aplikacji (nawet innej aplikacji tego samego dewelopera)
- Sprawdź, czy treści są widoczne w innej aplikacji i czy nie powodują jej zawieszania.
Dodatkowe informacje
Zaakceptuj e-maile w Konsoli Google Play, abyśmy mogli wysyłać Ci ważne informacje i ogłoszenia dotyczące Androida i Google Play, w tym miesięczny newsletter dla partnerów.