Android 7’de Farklı Bir Klasörden Video Alma
Android 7 ve sonraki sürümlerinde, uygulamaların harici depolama alanına erişimi kısıtlanmıştır. Bu, uygulamaların varsayılan olarak yalnızca kendi özel veri dizinlerine ve harici depolama alanının belirli bölümlerine erişebileceği anlamına gelir.
Uygulamanızın farklı bir klasörden video almasına izin vermek için aşağıdaki adımları izlemeniz gerekir:
1. Uygulama İzinlerini Güncelleyin
Uygulama beyannamesinde READ_EXTERNAL_STORAGE
iznini talep edin:
xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
2. Depolama İzinlerini Çalışma Zamanında İsteyin
Uygulama çalışırken, harici depolama alanına erişmek için izin isteyin:
java
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE_READ_EXTERNAL_STORAGE);
}
3. Video Dosyasının Yolunu Alın
Kullanıcıya video dosyasını seçmesi için bir ACTION_GET_CONTENT
niyeti kullanın:
java
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("video/*");
startActivityForResult(intent, REQUEST_CODE_GET_VIDEO);
4. Video Dosyasını Okuma
Uygulama, onActivityResult()
yönteminde video dosyasının yolunu alacaktır:
“`java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_GET_VIDEO && resultCode == RESULT_OK) {
Uri videoUri = data.getData();
// Video dosyasını okumak için videoUri kullanın
}
}
“`
İpuçları
- Uygulamanızın yalnızca gerekli izinleri istemesi önemlidir.
- Kullanıcıların video dosyalarını seçmelerine izin vermek için bir dosya seçici kullanın.
- Video dosyalarını okumak için
ContentResolver
sınıfını kullanın.