Paylaşılan depolama alanı erişimi gerektiren uygulamaların çoğu en iyi medya paylaşımlarıyla ilgili uygulamaların dosyaları ve medya dışı öğeleri paylaşma dosyaları ile senkronize edilir. Ancak bazı uygulamaların bir cihazdaki dosyalara geniş kapsamlı erişimi gerektiren temel bir kullanım alanı vardır, ancak gizlilik haklarına saygılı depolama en iyi uygulamalarını kullanarak bunlara verimli bir şekilde erişemez. Android, bunlar için tüm dosyalara erişim adı verilen özel bir uygulama erişimi sağlar durumlardan birine sahip olmaları halinde başlatabilirler.
Örneğin, bir antivirüs uygulamasının birincil kullanım alanı düzenli tarama yapmayı gerektirebilir. farklı dizinlerdeki birçok dosyadan oluşur. Bu tarama işlemi tekrarlanırsa sistem dosya seçiciyi kullanarak dizinleri seçmek için kullanıcı etkileşimlerini kötü bir kullanıcı deneyimi sunar. Dosya yöneticisi uygulamaları, yedekleme ve geri yükleme uygulamaları ile doküman yönetimi uygulamaları gibi düşünmelisiniz.
Tüm dosyalara erişim iste
Bir uygulama, aşağıdakileri yaparak kullanıcıdan tüm dosyalara erişim isteğinde bulunabilir:
- Tanımlayın
MANAGE_EXTERNAL_STORAGE
izninin olması gerekir. - Şunu kullanın:
ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
Kullanıcıları sistem ayarları sayfasına yönlendirmek için intent işlemi uygulamanız için şu seçenek: Tüm dosyaları yönetmek için erişime izin ver.
Uygulamanıza MANAGE_EXTERNAL_STORAGE
izni verilip verilmediğini belirlemek için
izin, çağrı
Environment.isExternalStorageManager()
MANAGE_EXTERNAL_STORAGE tarafından izin verilen işlemler
MANAGE_EXTERNAL_STORAGE
izni şunları sağlar:
Paylaşılan paylaşılan tüm dosyalara okuma ve yazma erişimi depolama alanı.
İçeriklerine erişim
MediaStore.Files
tablosu.Hem hareket halindeyken kullanılabilen USB (OTG) sürücüsünün hem de SD'nin kök dizinine erişim. kartını inceleyebilirsiniz.
Şunlar hariç tüm dahili depolama dizinlerine yazma erişimi:
/Android/data/
,/sdcard/Android
ve çoğu alt dizini/sdcard/Android
. Bu yazma erişimi, doğrudan dosyayı path erişimi de vardır.Bu izne sahip olan uygulamalar yine de uygulamaya özel dizinleri de kullanabilirsiniz. çünkü bu dizinler aynı tarayıcıda
Android/data/
alt dizinleri olarak depolama hacminizi artırır.
MANAGE_EXTERNAL_STORAGE
iznine sahip olan uygulamalar bu bilgilere erişebilir
ek dosyalara ve dizinlere
MediaStore
API veya doğrudan dosya
yollar var.
Depolama Erişim Çerçevesi
ancak bir dosyaya veya dizine yalnızca
MANAGE_EXTERNAL_STORAGE
iznine sahip olun.
Başka bir uygulamanın depolama alanı yönetimi etkinliğini çağırma
Android 12 (API düzeyi 31) ve sonraki sürümlerde
MANAGE_EXTERNAL_STORAGE
ve
QUERY_ALL_PACKAGES
izinleri (örneğin, dosya yönetimi uygulamaları)
getManageSpaceActivityIntent()
Kullanıcıları başka bir uygulamanın özel alan yönetimine göndermek için
olabilir.
getManageSpaceActivityIntent()
yöntemi, bir paket adı ve bir
istekte bulunduğunda, aşağıdakilerden birini döndürür:
PendingIntent
: belirtilen paket adı özel bir "alan yönet" tanımladı etkinliği'ne dokunun. Dosya çağıran bir yönetim uygulamasıdır.getManageSpaceActivityIntent()
yöntemini çağıran Kullanıcıları özel etkinliğe göndermek için döndürülen niyeti çağırır.- Belirtilen paket adına sahip uygulama bir "yönet" tanımlamıyorsa
null
boşluk" etkinliği'ne dokunun.
Test için MANAGE_EXTERNAL_STORAGE özelliğini etkinleştir
MANAGE_EXTERNAL_STORAGE
izninin uygulamanızı nasıl etkilediğini öğrenmek için:
test izni etkinleştirebilir. Bunu yapmak için aşağıdaki komutu çalıştırın:
komutunu çalıştırın:
adb shell appops set --uid PACKAGE_NAME MANAGE_EXTERNAL_STORAGE allow
Google Play bildirimi
Bu bölümde, Google Play'de uygulama yayınlayan geliştiriciler için uyarı sağlanmaktadır.
Paylaşılan depolama alanına geniş kapsamlı erişimi sınırlamak için Google Play Store şunlarını güncelledi:
politika
Android 11 (API düzeyi 30) veya sonraki sürümleri hedefleyen ve
tüm dosyalara MANAGE_EXTERNAL_STORAGE
izniyle erişebilir. Bu politika
Yürürlüğe girme tarihi Mayıs 2021 itibarıyla sona erecek.
Uygulamanız Android 11 veya sonraki bir sürümü hedeflediğinde
MANAGE_EXTERNAL_STORAGE
izniniz varsa Android Studio şu lint uyarısını gösterir:
Şekil 1'de görünür. Bu uyarı, Google Play Store'da geçerli bir
izinlerin kullanımını sınırlandıran bir politika izler.
MANAGE_EXTERNAL_STORAGE
ile ilgili Google Play politikası
izni gerekir.
MANAGE_EXTERNAL_STORAGE
iznini yalnızca uygulamanız durumunda iste
Depolama alanı gibi gizlilik haklarına daha saygılı API'lerden
Erişim Çerçevesi veya Media
Store API. Uygulamanızın kullanımı
izinlerin kapsamı, izin verilen kullanımlar kapsamında olmalı ve doğrudan
uygulamanın temel işlevi. Uygulamanızın kullanım alanı varsa
bir web sitesini ziyaret ettiğinde, büyük olasılıkla
MANAGE_EXTERNAL_STORAGE
izin:
- Dosya yöneticileri
- Yedekleme ve geri yükleme uygulamaları
- Virüsten korunma uygulamaları
- Doküman yönetimi uygulamaları
- Cihazda dosya arama
- Disk ve dosya şifreleme
- Cihazdan cihaza veri taşıma