Począwszy od Androida 14 instalator pakietów na Androida może pozyskiwać metadane dotyczące aplikacji (np. dotyczące bezpieczeństwa danych) na potrzeby funkcji platformy Androida, takich jak zaktualizowany monit o przyznanie dostępu do lokalizacji.
Te metadane możesz podać na 2 sposoby:
W przypadku aplikacji wstępnie załadowanej z obrazu systemu producenci urządzeń mogą udostępnić metadane na temat aplikacji, dodając do obrazu systemu plik XML z trwałym pakietem opisanym poniżej.
W przypadku instalowanych lub aktualizowanych aplikacji aby określić te metadane, instalatory aplikacji powinny przekazywać do metody
setAppMetadata()
obiektPersistableBundle
.
Trwały pakiet najwyższego poziomu składa się z tych par klucz-wartość. Każdy klucz jest opcjonalny, chyba że wskazano inaczej.
version
(pole wymagane)- Numer wersji formatu metadanych aplikacji. Użyj
2
jako wartości dla tej wersji ilong
jako typu. Jeśli oczekiwane klucze lub typy treściAppMetadata
ulegną zmianie, Android zmieni numer wersji. safety_labels
- Obiekt
PersistableBundle
, który określa etykiety bezpieczeństwa aplikacji. system_app_safety_label
- Obiekt
PersistableBundle
, który określa etykietę system-app-safety-label aplikacji. W przypadku aplikacji działających jako usługa systemowa używany jest pakietsystem_app_safety_label
zamiast pakietusafety_labels
. transparency_info
- Obiekt
PersistableBundle
, który określa informacje o przejrzystości aplikacji.
Format etykiet bezpieczeństwa
Pakiet safety_labels
zawiera te pary klucz-wartość:
version
(pole wymagane)- Numer wersji formatu etykiet bezpieczeństwa. Dla tej wersji użyj
1
jako wartości ilong
jako typu. data_labels
- Obiekt
PersistableBundle
, który określa dane zbierane i udostępniane przez aplikację. security_labels
- Obiekt
PersistableBundle
, który określa metody usuwania i szyfrowania danych w aplikacji. third_party_verification
- Obiekt
PersistableBundle
, który określa sposób weryfikacji przez firmę zewnętrzną zasad bezpieczeństwa danych w aplikacji.
Gromadzenie i udostępnianie danych
Pakiet data_labels
zawiera te pary klucz-wartość:
data_collected
- Obiekt
PersistableBundle
, który określa typy danych zbieranych przez aplikację. data_shared
- Obiekt
PersistableBundle
, który określa typy danych udostępnianych przez aplikację.
Kategorie danych
Klucze data_collected
i data_shared
używają formatu pakietu data_category
, który zawiera pary klucz-wartość widoczne na poniższej liście. Każdy klucz jest mapowany na obiekt PersistableBundle
, który określa typy danych w konkretnej kategorii.
personal
financial
location
email_text_message
photo_video
audio
storage
health_fitness
contacts
calendar
identifiers
app_performance
actions_in_app
search_and_browsing
Typy danych
Każdy klucz w pakiecie data_category
jest mapowany na inny pakiet w formacie data_type
. Klucze, które określasz w formacie data_type
, zależą od tego, co wybierzesz dla data_category
.
Możliwe pary klucz-wartość (data_type
) pojawią się na poniższych listach. Wartość każdego z tych kluczy to obiekt PersistableBundle
, który opisuje sposoby użycia danych przez aplikację w przypadku określonego typu danych. Niektóre typy danych używają tylko jednego klucza.
Osobisty charakter
name
email_address
physical_address
phone_number
race_ethnicity
political_or_religious_beliefs
sexual_orientation_or_gender_identity
personal_identifiers
other
Finanse
card_bank_account
purchase_history
credit_score
other
Lokalizacja
approx_location
precise_location
E-maile i SMS-y
emails
text_messages
other
Zdjęcia i filmy
photos
videos
Dźwięk
sound_recordings
music_files
other
Miejsce na dane
files_docs
Zdrowie i fitness
health
fitness
Kontakty
contacts
Kalendarz
calendar
Identyfikatory
other
Wydajność aplikacji
crash_logs
performance_diagnostics
other
Działania w aplikacji
user_interaction
in_app_search_history
installed_apps
user_generated_content
other
Wyszukiwanie i przeglądanie
web_browsing_history
Użycie danych
Pakiet data_usage
zawiera te pary klucz-wartość:
purposes
(wymagane)-
Tablica liczb całkowitych, która określa konkretne powody zbierania lub udostępniania danych i korzysta z metody
PersistableBundle
putIntArray
. Każdy pakiet wymaga co najmniej 1 z określonych poniżej celów.1
: PURPOSE_APP_FUNCTIONALITY2
: PURPOSE_ANALYTICS3
: PURPOSE_DEVELOPER_COMMUNICATIONS4
: PURPOSE_FRAUD_PREVENTION_BEZPIECZEŃSTWO5
: PURPOSE_ADVERTISING6
: PURPOSE_PERSONALIZATION7
: PURPOSE_ACCOUNT_MANAGEMENT
is_collection_optional
-
Wartość logiczna. Określa, czy użytkownicy mogą włączyć lub wyłączyć zbieranie danych.
Uwaga: ustaw tę wartość tylko dla pakietów (
data_category
), które reprezentują zbieranie danych; nie ustawiaj jej na potrzeby udostępniania danych. ephemeral
-
Wartość logiczna. Określa, czy aplikacja przetwarza dane tylko po stronie serwera w pamięci, a nie na dysku oraz czy aplikacja przechowuje dane nie dłużej niż jest to konieczne do obsługi konkretnego żądania przetwarzania danych.
Uwaga: ustaw tę wartość tylko dla pakietów (
data_category
), które reprezentują zbieranie danych; nie ustawiaj jej na potrzeby udostępniania danych.
Usuwanie i szyfrowanie danych
Pakiet security_labels
zawiera pary klucz/wartość reprezentujące metody usuwania i szyfrowania danych w aplikacji:
is_data_deletable
- Wartość logiczna. Określa, czy aplikacja pozwala użytkownikowi poprosić o usunięcie jego danych.
is_data_encrypted
- Wartość logiczna. Określa, czy wszystkie dane użytkownika zbierane przez aplikację są szyfrowane podczas przesyłania.
Weryfikacja innych firm
Pakiet third_party_verification
składa się z jednego klucza: url
. Ten adres URL, przedstawiony jako wartość ciągu znaków, wskazuje witrynę zewnętrzną używaną do weryfikacji informacji o bezpieczeństwie danych w aplikacji.
Format etykiet bezpieczeństwa usług systemowych
W przypadku aplikacji działających jako usługa systemowa zamiast pakietu safety_labels
używany jest pakiet system_app_safety_label
, który zawiera te pary klucz-wartość:
url
(wymagany)
- Adres URL prowadzący do strony z informacjami o bezpieczeństwie aplikacji działającej jako usługa systemowa.
- Użyj typu
string
. - Jeśli nie został podany, zamiast niego należy użyć adresu URL polityki prywatności.
- Uwaga: sklep Google Play używa
privacy_policy
jako kreacji zastępczej.
Format informacji o przejrzystości
Pakiet transparency_info
zawiera te pary klucz-wartość:
developer_info
- Obiekt
PersistableBundle
, który określa informacje o deweloperze aplikacji. app_info
- Obiekt
PersistableBundle
, który określa informacje o aplikacji.
Informacje o deweloperze
Pakiet developer_info
zawiera te pary klucz-wartość:
developer_#
- Obiekt
PersistableBundle
, który identyfikuje dewelopera. Poledeveloper_info
zawiera co najmniej 1 elementdeveloper_#
, gdzie#
jest liczbą całkowitą. np.developer_0
,developer_1
,developer_2
itd.
Deweloper
Pakiet developer_#
zawiera te pary klucz-wartość:
name
(wymagany)- Ciąg tekstowy z nazwą dewelopera.
email
(wymagany)- Ciąg tekstowy zawierający adres e-mail dewelopera.
address
(wymagany)- Ciąg tekstowy zawierający adres pocztowy dewelopera.
country_region
(wymagany)- Ciąg tekstowy określający kraj lub region dewelopera.
website
- Ciąg tekstowy określający stronę internetową dewelopera.
app_registry
- Ciąg tekstowy określający sklep lub rejestr dewelopera.
- Jeśli deweloper jest też zarejestrowany w sklepie lub innym rejestrze, wartością powinna być nazwa pakietu na Androida w sklepie lub adres URL rejestru.
- Dozwolonych jest wiele wpisów dla wielu sklepów.
- W przypadku Google Play użyj
com.android.vending
. - Pomiń ten atrybut, jeśli deweloper to pakiet SDK wymieniony na platformie Google Play SDK Index.
- Jeśli deweloper nie jest zarejestrowany w żadnym sklepie z aplikacjami ani w żadnym rejestrze, pomiń ten atrybut.
app_registry_id
- Ciąg tekstowy zawierający identyfikator dewelopera określonego w elemencie
app_registry
. - Jeśli deweloper jest również zarejestrowany w sklepie lub innym rejestrze, wartością powinna być jego tożsamość w tym sklepie lub rejestrze.
- Dozwolonych jest wiele wpisów dla wielu sklepów.
- W przypadku deweloperów zarejestrowanych w Google Play ta wartość musi być adresem URL strony dewelopera (np. https://play.google.com/store/apps/dev?id=5700313618786177705 to adres URL strony dewelopera Google LLC).
- Jeśli deweloper jest deweloperem pakietu SDK wymienionym na platformie Google Play SDK Index, użyj adresu URL tego pakietu SDK w Google Play SDK Index (np. https://play.google.com/sdks/details/com-google-android-gms-play-services-ads to adres URL Google Play SDK Index pakietu Google Play SDK Index (GMA).
- Jeśli deweloper jest zarejestrowany w innym sklepie lub rejestrze, można podać adres URL sklepu z aplikacjami lub inny identyfikator.
- Jeśli deweloper nie jest zarejestrowany w żadnym sklepie z aplikacjami, ten atrybut można pominąć.
Informacje o aplikacji
Pakiet app_info
zawiera te pary klucz-wartość:
title
(wymagany)- Ciąg tekstowy zawierający tytuł aplikacji.
description
(wymagany)- Ciąg tekstowy określający przeznaczenie aplikacji w zrozumiałym dla człowieka bloku tekstu w języku angielskim.
contains_ads
(wymagany)- Wartość logiczna określająca, czy aplikacja wyświetla jakiekolwiek reklamy.
privacy_policy
(wymagany)
- Ciąg tekstowy zawierający atrybut adresu URL z linkiem do polityki prywatności, który określa, w jaki sposób obchodzimy się z danymi użytkownika.
- Wymagane w przypadku aplikacji do przesyłania danych użytkownika.
- Jeśli aplikacja nie zawiera tego linku, zakłada się, że aplikacja nie obsługuje danych użytkownika.
category
(wymagany)Ciąg tekstowy zawierający jedną z tych kategorii aplikacji, która najlepiej opisuje jej główne przeznaczenie:
- Android (tylko w przypadku komponentu AOSP)*
- Sztuka i projektowanie
- Samochody i inne pojazdy
- Uroda
- Książki i źródła
- Firma
- Komiksy
- Komunikacja
- Randki
- Edukacja
- Rozrywka
- Wydarzenia
- Finanse
- Jedzenie i picie
- Gra
- Zdrowie i fitness
- Dom
- Instalator (tylko w przypadku sklepu z aplikacjami lub innego instalatora)*
- Biblioteki i materiały demonstracyjne
- Styl życia
- Mapy i nawigacja
- Medycyna
- Muzyka i dźwięk
- Wiadomości i czasopisma
- Dla rodziców
- Personalizacja
- Zdjęcia
- Produktywność
- Bezpieczeństwo*
- Zakupy Google
- Społecznościowe
- Sport
- Narzędzia
- Podróże i informacje lokalne
- Aktualizator (tylko dla domyślnej bezprzewodowej aplikacji do aktualizacji urządzenia)*
- Edytory i odtwarzacze wideo
- pogodę.
contact_info
- Obiekt
PersistableBundle
zawierający informacje kontaktowe aplikacji (poniżej).
Informacje kontaktowe
Pakiet contact_info
zawiera te pary klucz-wartość:
email
(wymagany)- Ciąg tekstowy określający adres e-mail aplikacji.
website
- Ciąg tekstowy określający stronę internetową aplikacji.