Większość aplikacji, które wymagają dostępu do pamięci współdzielonej, działa najlepiej metody udostępniania multimediów pliki i udostępnianie materiałów innych niż multimedialne . Jednak niektóre ma główny przypadek użycia, który wymaga szerokiego dostępu do plików na urządzeniu, nie może uzyskać do nich dostępu z zastosowaniem sprawdzonych metod dotyczących miejsca na dane zapewniającego ochronę prywatności. Android zapewnia specjalny dostęp do aplikacji, nazywany dostępem do wszystkich plików. w różnych sytuacjach.
Głównym przypadkiem użycia aplikacji antywirusowej może być na przykład regularne skanowanie. plików w różnych katalogach. Jeśli to skanowanie wymaga powtarzania interakcji użytkownika przy wyborze katalogów za pomocą systemowego selektora plików, nie są wygodne w obsłudze. w innych przypadkach użycia, takich jak aplikacje do zarządzania plikami, aplikacje do tworzenia i przywracania kopii zapasowych oraz do zarządzania dokumentami – wymagają podobnych zalety i wady dostępnych metodologii.
Poproś o dostęp do wszystkich plików
Aplikacja może poprosić użytkownika o dostęp do wszystkich plików, wykonując te czynności:
- Zadeklaruj parametr
MANAGE_EXTERNAL_STORAGE
uprawnienia użytkownika w pliku manifestu. - Użyj
ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
działanie intencji, które ma kierować użytkowników na stronę ustawień systemu, na której mogą ją włączyć wybierz opcję Zezwól na zarządzanie wszystkimi plikami.
Aby sprawdzić, czy Twoja aplikacja otrzymała uprawnienia MANAGE_EXTERNAL_STORAGE
uprawnienia, wywołanie
Environment.isExternalStorageManager()
Operacje dozwolone przez MANAGE_EXTERNAL_STORAGE
Uprawnienie MANAGE_EXTERNAL_STORAGE
zapewnia te korzyści:
Uprawnienia do zapisu i odczytu wszystkich plików w domenie udostępnionych miejsca na dane.
Dostęp do zawartości
MediaStore.Files
.dostęp do katalogu głównego dysku USB On-the-Go (OTG) i karty SD;
Dostęp z możliwością zapisu do wszystkich katalogów pamięci wewnętrznej z wyjątkiem
/Android/data/
,/sdcard/Android
i większość podkatalogów/sdcard/Android
Te uprawnienia do zapisu obejmują plik bezpośredni ścieżki dostępu.Aplikacje, którym przyznano to uprawnienie, nadal nie mają dostępu do katalogów należących do innych aplikacji, bo te katalogi występują jako podkatalogi
Android/data/
w woluminu miejsca na dane.
Jeśli aplikacja ma uprawnienie MANAGE_EXTERNAL_STORAGE
, będzie miała dostęp do tych elementów:
plików i katalogów za pomocą
Interfejs API MediaStore
lub plik bezpośredni
. Jeśli używasz tagu
platforma dostępu do pamięci masowej,
dostęp do pliku lub katalogu możesz uzyskać tylko wtedy, gdy możesz to zrobić bez
ma uprawnienie MANAGE_EXTERNAL_STORAGE
.
Wywołaj aktywność związaną z zarządzaniem miejscem na dane w innej aplikacji
Na Androidzie 12 (poziom interfejsu API 31) i nowszych wersjach aplikacje, które zawierają
MANAGE_EXTERNAL_STORAGE
uprawnienia i
QUERY_ALL_PACKAGES
uprawnień (takich jak aplikacje do zarządzania plikami) mogą używać
getManageSpaceActivityIntent()
do kierowania użytkowników do niestandardowego systemu zarządzania pokojem w innej aplikacji
.
Metoda getManageSpaceActivityIntent()
pobiera nazwę pakietu i tag
żądania kodu i zwraca jeden z następujących elementów:
PendingIntent
, jeśli aplikacja z atrybutem określona nazwa pakietu ma zdefiniowaną niestandardową „zarządzanie przestrzenią” działania. Plik aplikacja do zarządzania, która wywołała metodęgetManageSpaceActivityIntent()
, może wtedy wywołaj zwrócona intencję, aby przekierować użytkowników do aktywności niestandardowej.null
, jeśli aplikacja o podanej nazwie pakietu nie ma zdefiniowanego parametru „manage” spacja” działania.
Włącz MANAGE_EXTERNAL_STORAGE na potrzeby testowania
Aby sprawdzić, jak uprawnienie MANAGE_EXTERNAL_STORAGE
wpływa na Twoją aplikację,
może włączyć uprawnienia do testowania. Aby to zrobić, uruchom następujące polecenie
na komputerze podłączonym do urządzenia testowego:
adb shell appops set --uid PACKAGE_NAME MANAGE_EXTERNAL_STORAGE allow
Powiadomienie z Google Play
Ta sekcja zawiera powiadomienia dla deweloperów, którzy publikują aplikacje w Google Play.
Aby ograniczyć szeroki dostęp do pamięci współdzielonej, Sklep Google Play zaktualizowaliśmy
oceniać aplikacje kierowane na Androida 11 (poziom interfejsu API 30) lub nowszego oraz
dostęp do wszystkich plików za pomocą uprawnienia MANAGE_EXTERNAL_STORAGE
. Ta zasada
i obowiązują od maja 2021 r.
Jeśli aplikacja jest kierowana na Androida 11 lub nowszego i zadeklaruje parametr
MANAGE_EXTERNAL_STORAGE
, Android Studio wyświetla ostrzeżenie, które
co widać na rysunku 1. To ostrzeżenie informuje, że w Sklepie Google Play obowiązują
która ogranicza możliwość korzystania z tego uprawnienia.
MANAGE_EXTERNAL_STORAGE
uprawnienia.
Poproś o uprawnienie MANAGE_EXTERNAL_STORAGE
tylko wtedy, gdy Twoja aplikacja
nie mogą efektywnie korzystać z interfejsów API, które szanują prywatność użytkowników, takich jak
Platforma dostępu lub Media
Store API. Wykorzystanie aplikacji
musi być zgodny z dozwolonymi zastosowaniami i musi być bezpośrednio powiązany z
główną funkcjonalność aplikacji. Jeśli aplikacja zawiera przypadek użycia
jak każda z tych sytuacji, prawdopodobnie będzie poprosić o
Uprawnienie MANAGE_EXTERNAL_STORAGE
:
- Menedżery plików
- Aplikacje do tworzenia i przywracania kopii zapasowych
- Aplikacje antywirusowe
- Aplikacje do zarządzania dokumentami
- Wyszukiwanie plików na urządzeniu
- Szyfrowanie dysku i plików
- Migracja danych między urządzeniami