Android App Folder Download File

Android Uygulama Klasöründen Dosya İndirme

Android uygulamaları, kullanıcıların cihazlarına dosya indirmelerine olanak tanıyan çeşitli yöntemler sunar. Bu yöntemler arasında, doğrudan URL’den indirme, HTTP istekleri kullanma ve Android DownloadManager sınıfını kullanma yer alır.

Doğrudan URL’den İndirme

En basit dosya indirme yöntemi, doğrudan URL’den indirmedir. Bu yöntem, dosyanın URL’sini bildiğiniz durumlarda kullanılabilir. Örneğin, aşağıdaki kod parçası, “http://example.com/file.txt” adresindeki dosyayı indirir:

java
URL url = new URL("http://example.com/file.txt");
URLConnection connection = url.openConnection();
InputStream inputStream = connection.getInputStream();
FileOutputStream fileOutputStream = new FileOutputStream(new File("/sdcard/file.txt"));
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, len);
}
inputStream.close();
fileOutputStream.close();

HTTP İstekleri Kullanma

HTTP istekleri kullanarak da dosya indirebilirsiniz. Bu yöntem, dosyanın URL’sini bildiğiniz ve dosyayı indirmek için özel başlıklar veya parametreler kullanmanız gerektiği durumlarda kullanılabilir. Örneğin, aşağıdaki kod parçası, “http://example.com/file.txt” adresindeki dosyayı indirir ve “Authorization” başlığını kullanarak kimlik doğrulaması yapar:

java
URL url = new URL("http://example.com/file.txt");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Authorization", "Basic " + Base64.encodeToString("username:password".getBytes(), Base64.NO_WRAP));
InputStream inputStream = connection.getInputStream();
FileOutputStream fileOutputStream = new FileOutputStream(new File("/sdcard/file.txt"));
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, len);
}
inputStream.close();
fileOutputStream.close();

Android DownloadManager Sınıfını Kullanma

Android DownloadManager sınıfı, dosya indirme işlemlerini yönetmek için kullanabileceğiniz bir sınıftır. Bu sınıf, indirme işlemlerini arka planda gerçekleştirir ve indirme işlemlerinin durumunu takip etmenizi sağlar. Örneğin, aşağıdaki kod parçası, “http://example.com/file.txt” adresindeki dosyayı indirir ve indirme işleminin durumunu takip eder:

“`java
DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(“http://example.com/file.txt”));
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, “file.txt”);
long downloadId = downloadManager.enqueue(request);

// İndirme işleminin durumunu takip etme
while (true) {
DownloadManager.Query query = new DownloadManager.Query();
query.setFilterById(downloadId);
Cursor cursor = downloadManager.query(query);
if (cursor.moveToFirst()) {
int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
switch (status) {
case DownloadManager.STATUS_PENDING:
// İndirme işlemi henüz başlamadı.
break;
case DownloadManager.STATUS_RUNNING:
// İndirme işlemi devam ediyor.
break;
case DownloadManager.STATUS_PAUSED:
// İndirme işlemi duraklatıldı.
break;
case DownloadManager.STATUS_SUCCESSFUL:
// İndirme işlemi başarılı bir şekilde tamamlandı.
break;
case DownloadManager.STATUS_FAILED:
// İndirme işlemi başarısız oldu.
break;
}
}
cursor.close();

// İndirme işleminin tamamlanmasını bekleme
if (status == DownloadManager.STATUS_SUCCESSFUL) {
    break;
}

// 1 saniye bekleme
Thread.sleep(1000);

}
“`

Faydalı Siteler ve Dosyalar


Yayımlandı