Belge sağlayıcıları ve SD karta erişim nasıl çalışır?
com.android.providers.documents ve com.android.externalstorage.documents, Storage Access Framework (SAF) sisteminin bileşenleridir: Uygulamalar bu bileşenler aracılığıyla dosyalara ve SD kartlara "ham" yollar üzerinden değil, güvenli content:// URI'leri aracılığıyla erişir.
DocumentsProvider ve SAF hakkında kısa bilgi
Android, uygulamaların tüm dosya sistemine doğrudan erişmesini engeller. Bunun yerine SAF adı verilen bir ara katman kullanılır; bu katman:
- com.android.providers.documents — genel sistem DocumentsProvider'ıdır: Dosya/klasör seçimi iletişim kutusunu görüntüler ve farklı kaynakları (dahili bellek, bulut, harici depolama alanları) birleştirir.
- com.android.externalstorage.documents — harici depolama modülüdür: Dahili bellek ve SD kartlardan sorumludur; content://com.android.externalstorage.documents/document/primary:Download/file.pdf gibi mantıksal URI'leri gerçek okuma/yazma işlemlerine dönüştürür.
Basitçe ifade edersek: com.android.providers.documents "ana dosya arayüzü", com.android.externalstorage.documents ise bunun fiziksel bellek ve SD kartlar için olan modülüdür.
Bu durum dosya erişimini ve SD kart kullanımını nasıl etkiler?
Uygulamada:
- Sistem iletişim kutusu üzerinden "Aç" veya "Paylaş" seçeneğini seçtiğinizde, uygulama /storage/... yolunu değil, content://... URI'sini alır ve sağlayıcı aracılığıyla çalışır.
- SD kart ayrı bir depolama alanı olarak bağlanır ve com.android.externalstorage.documents aracılığıyla iletişim kutusunda görünür; onun dosyaları da content://…/0123-4567:DCIM/... şeklinde döndürülür.
Sonuçları:
- Uygulama bir dosyayı yalnızca yol belirterek açamaz; SAF üzerinden izin alması gerekir.
- SD kart bağlı değilse veya hasar görmüşse, sağlayıcı URI döndürmez ve erişim mümkün olmaz.
Hataları hızlı ve adım adım nasıl düzeltebilirsiniz?
Aşağıda en sık karşılaşılan sorunlar için pratik adımlar yer almaktadır.
- Uygulama dosyayı açamıyor/kaydedemiyor
- Cihazı yeniden başlatın.
- İzinleri kontrol edin: Ayarlar → Uygulamalar → ilgili program → İzinler → dosyalara/multimedya içeriğine erişim.
- Aynı dosyayı başka bir uygulamayla açmayı deneyin.
- Sistem "Document Storage"/"Medya Depolama" önbelleğini temizleyin (sistem uygulamalarını göster seçeneğini etkinleştirin).
- Uygulamayı güncelleyin veya yeniden yükleyin.
Sorun yalnızca sistem dosya seçimi iletişim kutusunda ortaya çıkıyorsa, büyük olasılıkla suçlu DocumentsProvider (SAF)'dir, dosya değildir.
- SD kart görünüyor ancak dosyalar "kayıp"
- Bellek ayarlarında "Çıkar"/Unmount işlemini gerçekleştirin, ardından kartı takın veya cihazı yeniden başlatın.
- Fiziksel kontrol: Kartı çıkarın, temas noktalarını silin ve tekrar takın.
- Kartı bilgisayarda kontrol edin: Okunmuyorsa verileri kaydetmeye çalışın ve biçimlendirin.
- Düzenli hatalar yaşanıyorsa kartı biçimlendirin veya değiştirin (mekanik aşınma olasılığı yüksektir).
Biçimlendirme verileri silecektir — önceden yedekleme yapın.
- Android güncellemesinden sonra erişim kayboldu
- İzinleri kontrol edin ve yeniden verin.
- Sorunlu uygulamayı yeniden yükleyin.
- Not: Doğrudan yollarla çalışan eski uygulamalar çalışmayı durdurabilir; SAF destekleyen alternatifler arayın.
- Günlüklerde hatalar görünüyor ancak her şey çalışıyor
- Çoğu zaman bu, izinsiz arka plan erişim denemeleri veya eski isteklerdir; kullanıcı işlevselliği bozulmadıysa endişelenmenize gerek yoktur.
- Kesin teşhis için hata metnini, cihaz modelini ve Android sürümünü belirtin.
Sık karşılaşılan hatalar
- content://… erişimi sırasında Permission denied / SecurityException
- Failed to open document / Document provider is not responding
- SD kart görüntüleniyor ancak bağlanmıyor veya boş dosya listesi döndürüyor
- Uygulama eski doğrudan yollarla çalışıyor ve güncellemeden sonra bozuluyor
SSS
-
S: Bu bir virüs mü?
C: Hayır — bunlar Android'in sistem bileşenleridir (DocumentsProvider ve harici depolama modülü). -
S: Bu sağlayıcılar aracılığıyla dosyalara "doğrudan" yol elde edilebilir mi?
C: Modern Android sürümlerinde hayır. Uygulamanın URI ve SAF üzerinden çalışması veya belirtilen klasöre erişim istemesi gerekir. -
S: SD karttan veri kurtarma acil olarak gerekiyorsa ne yapılmalı?
C: Kartı kart okuyucu aracılığıyla bilgisayara bağlamayı ve veri kurtarma programlarını kullanmayı deneyin; önemliyse, kurtarma denemesinden önce kartı biçimlendirmeyin.
Gerekirse, belirli hatayı (günlükten alınan tam metin, telefon modeli, Android sürümü) açıklayın — teşhis ve nokta atışı komutlar/adımlar konusunda size yardımcı olabilirim.