Dostawcy treści mogą pomagać aplikacjom w zarządzaniu dostępem do danych przechowywanych przez samą aplikację lub przez inne aplikacje oraz w sposób udostępniania danych innym aplikacjom. Obejmują one dane i udostępniają mechanizmy definiowania ich bezpieczeństwa. Dostawcy treści to standardowy interfejs łączący dane w jednym procesie z kodem uruchomionym w innym.
Wdrożenie dostawcy treści ma wiele zalet. Przede wszystkim możesz skonfigurować dostawcę treści tak, aby umożliwić innym aplikacjom bezpieczny dostęp do danych Twojej aplikacji i ich modyfikowanie, jak pokazano na ilustracji 1.
![Schemat pokazujący, jak dostawcy treści zarządzają dostępem do pamięci masowej.](https://developer.android.google.cn/static/guide/topics/providers/images/content-provider-overview.png?authuser=6&hl=pl)
Rysunek 1. Schemat pokazujący, jak dostawcy treści zarządzają dostępem do pamięci masowej.
Jeśli chcesz udostępniać dane, skorzystaj z usług dostawców treści. Jeśli nie planujesz udostępniać danych, nie musisz ich używać, ale możesz to zrobić, ponieważ zawierają one abstrakcję, która umożliwia modyfikowanie implementacji przechowywania danych aplikacji bez wpływu na inne aplikacje, które korzystają z dostępu do danych.
W tym przypadku problem dotyczy tylko Twojego dostawcy treści, a nie aplikacji, które z niego korzystają. Możesz na przykład wymienić bazę danych SQLite na alternatywną pamięć masową, jak pokazano na ilustracji 2.
![Ilustracja migracji pamięci dostawcy treści.](https://developer.android.google.cn/static/guide/topics/providers/images/content-provider-migration.png?authuser=6&hl=pl)
Rysunek 2. Ilustracja migracji pamięci dostawcy treści.
Wiele innych klas bazuje na klasie ContentProvider
:
Jeśli używasz dowolnej z tych klas, musisz wdrożyć w aplikacji dostawcę treści. Podczas pracy z platformą adaptera synchronizacji możesz też utworzyć dostawcę treści skróconych. Więcej informacji znajdziesz w artykule Tworzenie dostawcy wycinka treści. Oprócz tego w tych przypadkach musisz mieć własnego dostawcę treści:
- Aby zaimplementować niestandardowe sugestie wyszukiwania w aplikacji.
- Ujawnianie danych aplikacji widżetom.
- Aby skopiować i wkleić złożone dane lub pliki z aplikacji do innych aplikacji.
Platforma Android obejmuje dostawców treści, którzy zarządzają danymi takimi jak audio, wideo, obrazy i osobiste dane kontaktowe. Niektóre z nich znajdziesz w dokumentacji pakietu android.provider
. Dostawcy ci są dostępni dla każdej aplikacji na Androida (z pewnymi ograniczeniami).
Dostawca treści może zarządzać dostępem do różnych źródeł przechowywania danych, w tym do uporządkowanych danych, takich jak relacyjna baza danych SQLite, i do danych nieuporządkowanych, np. plików graficznych. Więcej informacji o typach pamięci masowej dostępnych na Androidzie znajdziesz w artykułach Omówienie miejsca na dane i pliki oraz Projektowanie miejsca na dane.
Zalety dostawców treści
Dostawcy treści oferują szczegółową kontrolę nad uprawnieniami dostępu do danych. Możesz ograniczyć dostęp tylko do dostawcy treści, który znajduje się w aplikacji, przyznać ogólne uprawnienia dostępu do danych z innych aplikacji lub skonfigurować różne uprawnienia do odczytu i zapisu danych. Więcej informacji o bezpiecznym korzystaniu z dostawców treści znajdziesz we wskazówkach dotyczących bezpieczeństwa danych i uprawnieniach dostawców treści.
Za pomocą dostawcy treści możesz wyodrębnić szczegóły dotyczące dostępu do różnych źródeł danych w aplikacji. Na przykład aplikacja może przechowywać uporządkowane rekordy w bazie danych SQLite, a także pliki wideo i audio. Dostęp do tych danych możesz uzyskać, korzystając z usług dostawcy treści.
Obiekty CursorLoader
wymagają też, aby dostawcy treści uruchamiali asynchroniczne zapytania, a następnie zwracali wyniki do warstwy interfejsu użytkownika w aplikacji. Więcej informacji o używaniu klasy CursorLoader
do wczytywania danych w tle znajdziesz w sekcji
Moduły wczytywania.
Poniższe tematy zawierają bardziej szczegółowe informacje o dostawcach treści:
- Podstawowe informacje o dostawcach treści
- Jak uzyskać dostęp do danych i je zaktualizować przy użyciu dotychczasowego dostawcy treści.
- Utwórz dostawcę treści
- Jak zaprojektować i wdrożyć własnego dostawcę treści.
- Omówienie dostawców kalendarza
- Jak uzyskać dostęp do dostawcy kalendarza, który jest częścią platformy Androida.
- Dostawca kontaktów
- Jak uzyskać dostęp do dostawcy kontaktów, który jest częścią platformy Androida.