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 muszą być kierowane na Androida 14 (poziom interfejsu API 34) lub nowszego. Nie dotyczy to aplikacji na Wear OS i Androida TV, które muszą być kierowane na Androida 13 (poziom API 33) lub nowszego.
- Istniejące aplikacje muszą być kierowane na Androida 13 (poziom interfejsu API 33) lub nowszego, aby mogły być nadal 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 terminu do 1 listopada 2024 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.
- Aplikacje kierowane na system operacyjny Android Automotive lub w pakiecie z plikami APK kierowanymi na system operacyjny Android Automotive.
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, że użytkownicy mogą korzystać z tych ulepszeń, ale może ona nadal działać na starszych wersjach Androida. Kierowanie na aktualny poziom interfejsu API umożliwia również aplikacji korzystanie z najnowszych funkcji platformy, aby zachwycać 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 opisujemy ważne informacje, które należy wiedzieć, aby zaktualizować docelowy poziom interfejsu API, aby spełniał wymagania Google Play. W zależności od wersji, do której przenosisz dane, odpowiednie instrukcje znajdziesz w kolejnych sekcjach.
Migracja z Androida 12 lub nowszego (poziom interfejsu API 31) do nowszej wersji
Aby zaktualizować aplikację, aby kierować ją na nowszą wersję Androida, postępuj zgodnie z listą odpowiednich zmian w działaniu aplikacji:
Migracja z Androida 11 (poziom interfejsu API 30) na Androida 12 (poziom API 31)
Zabezpieczenia i uprawnienia
- Bluetooth: deklaracje dotyczące uprawnień
BLUETOOTH
iBLUETOOTH_ADMIN
musisz zastąpić uprawnieniamiBLUETOOTH_SCAN
,BLUETOOTH_ADVERTISE
lubBLUETOOTH_CONNECT
. Nie musisz już wysyłaćLOCATION
próśb o uprawnienia w czasie działania w przypadku operacji Bluetooth. - Lokalizacja: użytkownicy mogą prosić aplikacje o pobranie tylko informacji o przybliżonej lokalizacji. O uprawnienia
ACCESS_COARSE_LOCATION
musisz prosić za każdym razem, gdy prosisz oACCESS_FINE_LOCATION
.- Filtry intencji: jeśli aplikacja zawiera działania, usługi lub odbiorniki, które używają 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 tworzonej przez aplikację.
Interfejs 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. Ten szablon zapewnia, że powiadomienia niestandardowe będą miały takie same dekoracje jak pozostałe powiadomienia we wszystkich stanach. Działanie to jest niemal identyczne jak w przypadku funkcji
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 uruchamiania usług działających na pierwszym planie: aby kierować aplikację na Androida 12 lub nowszego, aplikacja nie może uruchamiać usług działających na pierwszym planie, gdy działa w tle. Wyjątkiem są kilka 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 planowania i rozpoczynania pracy przyspieszonej, gdy aplikacja działa w tle. Aby wykonać pilne działania użytkownika, uruchom usługi na pierwszym planie w obrębie konkretnego alarmu.
Ograniczenia powiadomień dotyczących trampolin: gdy użytkownik klika powiadomienia, niektóre aplikacje reagują, uruchamiając komponent aplikacji, który rozpoczyna aktywność, którą użytkownik widzi i wchodzi z nią w interakcję. Ten komponent aplikacji to tzw. trampolina do powiadomień.
Aplikacje nie mogą uruchamiać działań z usług ani odbiorników używanych jako trampolin do 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 wpływają na aplikacje kierowane na Androida 12 (poziom interfejsu API 31).
Migracja z Androida w wersji starszej niż 11 (poziom interfejsu API 30)
Wybierz wersję Androida, z której chcesz przenieść dane:
Migracja na Androida 5 (poziom interfejsu API 21)
Zapoznaj się ze stroną Zmiany w działaniu każdej z tych wersji, aby upewnić się, że uwzględnia ona zmiany wprowadzone w tych wersjach:
- Android 5.0 (poziom API 21)
- Android 4.4 (poziom interfejsu API 19).
- Android 4.1.x (poziom interfejsu API 16).
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 nowszego, należy wziąć pod uwagę te kwestie:
-
-
Niebezpieczne uprawnienia są przyznawane tylko w czasie działania. Przepływy interfejsu muszą zawierać afordancje umożliwiające przyznanie tych uprawnień.
-
W miarę możliwości zadbaj o to, aby Twoja aplikacja była przygotowana do obsługi odrzucania próśb o przyznanie uprawnień. Jeśli na przykład użytkownik odrzuci prośbę o dostęp do GPS 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 działaniu dotyczącej danej wersji platformy.
Postępuj zgodnie z instrukcjami podanymi 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 należy wziąć pod uwagę te kwestie:
-
Uśpienie i tryb czuwania aplikacji
Projektowanie pod kątem zachowań opisanych w artykule Optymalizacja pod kątem funkcji uśpienia i czuwania aplikacji, który obejmuje stopniowe zmiany wprowadzane w kilku wersjach platformy.
Gdy urządzenie jest w trybie uśpienia i czuwania aplikacji, system działa w następujący sposób:
- Ogranicza dostęp do sieci
- Odracza alarmy, synchronizacje i zadania
- Ogranicza skanowanie za pomocą GPS i Wi-Fi
- Ogranicza wiadomości z Komunikacji w chmurze Firebase o normalnym priorytecie.
-
Zmiany uprawnień
- System ogranicza dostęp do katalogów prywatnych aplikacji.
-
Ujawnienie identyfikatora URI
file://
poza aplikacją powoduje wywołanieFileUriExposedException
. Jeśli chcesz udostępniać pliki poza aplikacją, zastosujFileProvider
-
System zakazuje łączenia z bibliotekami innymi niż NDK.
Pełną listę zmian wprowadzonych w Androidzie 7.0 (poziom interfejsu API 24) znajdziesz na stronie Zmiany w działaniu dotyczącej danej wersji platformy.
Postępuj zgodnie z instrukcjami podanymi w następnej sekcji.
Migracja na Androida 8 (poziom interfejsu API 26)
W przypadku aplikacji kierowanych na Androida 8.0 i nowsze wersje platformy należy wziąć pod uwagę te kwestie:
-
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ć interfejsów
startForeground()
istartForegroundService()
. - Uważnie zapoznaj się ze zmianami wprowadzonymi w interfejsie JobScheduler API, zgodnie z dokumentacją na stronie Zmiany zachowania w Androidzie 8.0 (poziom interfejsu API 26).
- Komunikacja w chmurze Firebase wymaga wersji 10.2.1 pakietu SDK Usług Google Play lub nowszej wersji.
- Podczas korzystania z Komunikacji w chmurze Firebase (FCM) dostarczanie wiadomości podlega limitom wykonywania wiadomości w tle. Gdy przy odebraniu wiadomości konieczne są działania w tle, np. synchronizacja danych w tle, aplikacja powinna zaplanować zadania za pomocą usługi Firebase Job Dispatcher lub JobIntentService. Więcej informacji znajdziesz w dokumentacji Komunikacji w chmurze Firebase (FCM).
-
-
Komunikaty niejawne
-
Transmisje pośrednie podlegają ograniczeniom. Informacje o obsłudze zdarzeń w tle znajdziesz w dokumentacji interfejsu API
JobScheduler
.
-
Transmisje pośrednie podlegają ograniczeniom. Informacje o obsłudze zdarzeń w tle znajdziesz w dokumentacji interfejsu API
-
Limity 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 dostawcy uśrednionej lokalizacji, aby co jakiś czas otrzymywać 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 przerywania powiadomień należy zdefiniować na poziomie poszczególnych kanałów.
- Aby powiadomienia się wyświetlały, musisz przypisać je do kanału.
-
Ta wersja platformy obsługuje
NotificationCompat.Builder
.
-
Prywatność
- ANDROID_ID: zakres ograniczony do klucza podpisywania aplikacji.
Pełną listę zmian wprowadzonych w Androidzie 8.0 (poziom interfejsu API 26) znajdziesz na stronie Zmiany w działaniu dotyczącej danej wersji platformy.
Migracja z Androida 8 (API 26) na Androida 9 (API 28)
-
Zarządzanie zasilaniem
- Zasobniki gotowości aplikacji wprowadzają nowe ograniczenia w tle oparte na zaangażowaniu aplikacji, takie jak odroczone zadania, alarmy i limity w przypadku wiadomości o wysokim priorytecie.
- Ulepszenia w zakresie oszczędzania baterii zwiększają ograniczenia dotyczące aplikacji w trybie 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 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 sieci Wi-Fi
Pełną listę zmian wprowadzonych w Androidzie 9.0 (poziom interfejsu API 28) znajdziesz w sekcji Zmiany w działaniu.
Migracja z Androida 9 (poziom interfejsu API 28) na Androida 10 (poziom interfejsu API 29)
-
Powiadomienia z intencjami pełnoekranowymi
-
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.
-
Kilka działań może być teraz w stanie „Wznowiono” jednocześnie, ale tylko jedna z nich jest zaznaczona.
-
Ta zmiana wpływa na działanie
onResume()
ionPause()
. -
Nowa koncepcja cyklu życia „najwyższe 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 właściwość
resizeableActivity
ma wartośćfalse
, aplikacje mogą dodatkowo określićminAspectRatio
, który automatycznie doda do aplikacji poziome pasy w przypadku węższych formatów obrazu.
-
Kilka działań może być teraz w stanie „Wznowiono” jednocześnie, ale tylko jedna z nich jest zaznaczona.
-
Zmiany dotyczące prywatności
-
Ilość miejsca na dane w ograniczonym zakresie
- 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 uprawnienia
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, wymaga uprawnień
ACTIVITY_RECOGNITION
. -
Ograniczony dostęp do niektórych interfejsów API telefonii, Bluetootha i Wi-Fi; wymaga 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 zrobić za pomocą paneli ustawień.
-
Ograniczenia inicjowania połączenia z siecią Wi-Fi, która wymaga użycia
WifiNetworkSpecifier
lubWifiNetworkSuggestion
.
-
Ilość miejsca na dane w ograniczonym zakresie
Migracja z Androida 10 (poziom interfejsu API 29) na Androida 11 (poziom interfejsu API 30)
-
Prywatność.
- Wymuszanie zakresu miejsca na dane : aplikacje powinny korzystać z modelu przechowywania danych o zakresie, w którym związane z aplikacjami, pliki multimedialne i inne typy plików są zapisywane i otwierane za pomocą dedykowanych lokalizacji.
- Automatyczne resetowanie uprawnień: jeśli użytkownicy nie korzystają z aplikacji przez kilka miesięcy, system automatycznie resetuje jej wrażliwe uprawnienia. Nie powinno to mieć wpływu na większość aplikacji. Jeśli Twoja aplikacja działa głównie w tle i nie wymaga 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ść pakietów: gdy aplikacja wysyła zapytanie o listę zainstalowanych aplikacji i usług na urządzeniu, zwrócona lista jest filtrowana.
- Jeśli korzystasz z usług zamiany tekstu na mowę lub rozpoznawania mowy, musisz dodać elementy zapytań dotyczących usług do pliku manifestu.
-
Zabezpieczenia
- Skompresowane pliki `resource.arsc` nie są już obsługiwane
- Wymagany jest teraz schemat podpisu pliku APK w wersji 2. Ze względu na zgodność wsteczną deweloperzy powinni też nadal podpisywać pliki APK według schematu podpisu plików APK w wersji 1.
- Ograniczenie dotyczące 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 interfejsu API 30) znajdziesz na stronie Zmiany w działaniu.
Przejdź na interfejs API 31, postępując zgodnie z instrukcjami podanymi w poprzedniej sekcji.
Modernizowanie aplikacji
Gdy zaktualizujesz docelowy poziom interfejsu API aplikacji, zastanów się nad wdrożeniem najnowszych funkcji platformy, aby zmodernizować aplikacje i zadowolić użytkowników.
- Rozważ użycie AparatuX w wersji beta, aby w pełni wykorzystać jego możliwości.
- Komponenty Jetpack pomagają w przestrzeganiu sprawdzonych metod, unikaniu pisania stałego kodu i upraszczaniu skomplikowanych zadań, dzięki czemu możesz skupić się na kodzie, który jest dla Ciebie ważny.
- Używaj Kotlin, aby pisać lepsze aplikacje szybciej i przy użyciu mniejszej ilości kodu.
- Przestrzegaj wymagań dotyczących prywatności i stosujesz sprawdzone metody.
- Dodaj do aplikacji obsługę ciemnego motywu.
- Dodaj do swoich aplikacji obsługę nawigacji przy użyciu gestów.
- Przenieś swoją aplikację z Google Cloud Messaging (GCM) do najnowszej wersji Komunikacji w chmurze Firebase (FCM).
- Skorzystaj z zaawansowanego zarządzania oknami.
- Obsługuj większe formaty obrazu (ponad 16:9), aby korzystać z ostatnich ulepszeń sprzętowych. Upewnij się, że rozmiar aplikacji zmienia się, aby wypełnił dostępną przestrzeń na ekranie. Jako ostatnie deklaruj maksymalny współczynnik proporcji. Więcej informacji o maksymalnych formatach obrazu znajdziesz w artykule Deklarowanie obsługi ograniczonego ekranu.
- Dodaj obsługę wielu okien, aby zwiększyć produktywność w aplikacji i 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 wysokości paska stanu. Zamiast niego użyj
WindowInsets
iView.OnApplyWindowInsetsListener
. Aby dowiedzieć się więcej, obejrzyj film droidcon NYC 2017. - Nie zakładaj, że aplikacja ma całe okno. Aby potwierdzić lokalizację urządzenia, użyj
View.getLocationInWindow()
, a nieView.getLocationOnScreen()
. * Do obsługi poleceniaMotionEvent
używaj właściwościMotionEvent.getX()
iMotionEvent.getY()
, a nieMotionEvent.getRawX()
MotionEvent.getRawY()
.
Sprawdzanie i aktualizowanie pakietów SDK oraz bibliotek
Upewnij się, że zewnętrzne zależności pakietów SDK obsługują interfejs API 31. Niektórzy dostawcy pakietów SDK publikują go w swoich plikach manifestu, a inni wymagają dodatkowych badań. Jeśli używasz pakietu SDK, który nie obsługuje interfejsu API 31, priorytetowo potraktuj współpracę z jego dostawcą w celu rozwiązania problemu.
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 Łączenie aplikacji z bibliotekami platformy na urządzeniach z Androidem.
Sprawdź też wszystkie ograniczenia, które obowiązują w używanej przez Ciebie wersji Biblioteki pomocy Androida. Jak zawsze musisz zapewnić zgodność między główną wersją biblioteki pomocy Androida a biblioteką compileSdkVersion
Twojej aplikacji.
Zalecamy wybór wersji targetSdkVersion
mniejszej od wersji głównej biblioteki pomocy lub jej równej. Zachęcamy do zaktualizowania biblioteki pomocy do najnowszej zgodnej z nią – pozwoli Ci to korzystać z najnowszych funkcji zgodności i poprawek błędów.
Testowanie aplikacji
Po zaktualizowaniu odpowiednio poziomu interfejsu API i funkcji aplikacji przetestuj niektóre jej podstawowe przypadki użycia. Podane niżej sugestie nie są wyczerpujące, ale mają pomóc w procesie testowania. Zalecamy przetestowanie:
- czy aplikacja skompiluje ją do interfejsu API 29 bez błędów i ostrzeżeń.
Aplikacja musi mieć strategię postępowania w przypadkach, gdy użytkownik odrzuca prośby o przyznanie uprawnień i wyświetla mu prośbę o przyznanie uprawnień. Aby to zrobić:
- Przejdź do ekranu Informacje o aplikacji i wyłącz wszystkie uprawnienia.
- Otwórz aplikację i sprawdź, czy nie ulega awarii.
- Przeprowadź podstawowe testy przypadków użycia i sprawdź, czy ponownie wyświetliły się prośby o wymagane uprawnienia.
Obsługa funkcji Uśpienie z oczekiwanymi wynikami bez błędów.
- Używając narzędzia adb, umieść urządzenie testowe w trybie uśpienia, gdy aplikacja jest uruchomiona.
- Przetestuj wszystkie przypadki użycia, które aktywują wiadomości Komunikacja w chmurze Firebase (FCM).
- Przetestuj wszystkie przypadki użycia, które używają alarmów lub zadań.
- Wyeliminuj wszelkie zależności od usług w tle.
- Przełącz aplikację w tryb gotowości
- Przetestuj wszystkie przypadki użycia, które aktywują wiadomości Komunikacja w chmurze Firebase (FCM).
- Przetestuj wszystkie przypadki użycia, które używają alarmów.
- Używając narzędzia adb, umieść urządzenie testowe w trybie uśpienia, gdy aplikacja jest uruchomiona.
Obsługuje nowe zdjęcia i nagrywane filmy
- Sprawdź, czy aplikacja obsługuje ograniczone
ACTION_NEW_PICTURE
iACTION_NEW_VIDEO
prawidłowo transmitowane (tj. przeniesione do zadań JobScheduler). - Sprawdź, czy wszystkie krytyczne przypadki użycia zależne od tych zdarzeń nadal działają.
- Sprawdź, czy aplikacja obsługuje ograniczone
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ść jest widoczna w innej aplikacji i nie wywołuje awarii.
Dodatkowe informacje
Wyraź zgodę na otrzymywanie e-maili w Konsoli Google Play, abyśmy mogli przesyłać Ci ważne informacje i ogłoszenia z Androida i Google Play, w tym nasz comiesięczny newsletter dla partnerów.