Android Download Manager Kullanımı (Örnek Kod)

Merhaba Arkadaşlar,
mobilhanem.com üzerinden anlattığımız/yayınladığımız derslere Androidde DownloadManager classını kullanarak istediğimiz linkten veri indirme dersi ile devam edeceğiz.Hepimizin malumudur ki bazen uygulama içinden cihaza yada direk uygulamamızın içine dosya download etmemiz gerekir.İşte burda Android 2.3 (Api 9) üzerinde çalışan DownladManager classı işimizi çok ama çok kolaylaştırıyor.

Arkadaşlar ben her zamanki gibi ufak bir uygulama üzerinde anlatacağım dersimizi. Uygulamamızda bir tane edittext iki tane buton var. Butonlardan biri, edittext alanına girilen url değerini alıyor ve gerekli kontrolleri yaptıktan sonra indirme işlemine başlıyor. Gerekli kontroller nedir diye sorarsanız, ben uygulamada iki kontrol yaptım.
1- Link “http://” ile başlayıp başlamadığı kontrolü
2- Linkteki indireceğimiz dosyanın uzantı kontrolü istediğim formattımı.
Siz daha fazlada kontrol yapabilirsiniz.
Diğer buton ise download işlemi bittiğinde enable oluyor ve tıklandığı zaman indirilme listesini açıyor.

DownloadManager Kullanımı

Evet arkadaşlar geçelim kodlamaya.Kod üzerinde gerekli açıklamaları yapmaya çalıştım .

Anasayfa.java

Evet arkadaşlar bu dersimde anlatmak istediklerim bu kadar. Sormak istediğiniz yada eklemek istediğiniz bir şey olursa çekinmeden yorum bırakabilirsiniz.

Bir dahaki dersimde Notification göndermeye yarıyan Google Cloud Messaging (GCM) anlatmaya çalışacağım. Sizlerden ricam facebook.com/mobilhanem sayfamızı beğenmeniz ve yazılımcı arkadaşlarınız ile paylaşmanızdır.

Bir dahaki dersimde görüşmek dileğiyle…

0

Taha Kırca

iOS & Android & Apple Watch Developer, Mobilhanem.com yazarı, Karadeniz Uşağu, Ordu Sevdalısı

11 Yorum

  • Download edilen dosyanın ilerleme durumunu gerçek zamanlı olarak yakalayıp kendi activity’imiz içerisinde nasıl gösterebiliriz peki ?

      • Teşekkür ederim. İki Tab’dan oluşan bir download activity var. İlk tab içerisinde bir ListView yer alıyor. Bunun içerisinde indirilecek dosyaların listesi yer alıyor.

        İndirme butonlarına basınca indirme DownloadManager ile iniyor. İkinci tabda ise İndirilenler adından bir liste var ve listenin görünümü ise eğer indirme bitmediyse bir progressbar ve yüzde işareti. Tam olarak böyle bir şey yapmak istiyorum 🙂 Bu tarz bir ders hazırlarsanız çok faydalı olacaktır.

  • Kolay gelsin hocam. Bu indirme için edittext e url girişi ve indirme butonuna basarak indirme yerine Webviewde açılan sayfadaki indirme butonuna bastığımızda dosyayı indirecek bir link yapamaz mıyız? bu konuda yardımcı olursanız sevinirim.

    Aklımda şöyle birşey var ama olurmu bilmiyorum. Webviewde açılan sayfadaki herhangi bir linke tıkladığınızda o sayfayı açıyor. Burada bir kontrol yaptırsak tıklanan linkteki uzantıyı kontrol ettirsek atıyorum .mp3 .jpg vs ise download işlemini başlatsın istiyorum. bu işlemi aşağıdaki kod içinde yapsan olur mu acaba?

    public boolean shouldOverrideUrlLoading(WebView view, String url) {
    // Bu method açılan sayfa içinden başka linklere tıklandığında açılmasına yarıyor.
    //Bu methodu override etmez yada edip içini boş bırakırsanız ilk url den açılan sayfa dışında başka sayfaya geçiş yapamaz

    view.loadUrl(url); //yeni tıklanan url i açıyor

    return true;
    }

  • Merhaba ,yapmaya çalıştığım uygulama gün içerisinde çoğunlukla offline çalışacağından uzak sunucuda bulunan resimleri cihaza çekmem gerekiyor ve yaklaşık 50 000 adet ürün resimi var bunun için hangi yöntemi kullanmalıyım sizce…remleri sqlite byte dizisi olarak kayıt edebilirmiyim bunun içi hangi yöntem hızlı olur.AsyncTask ile bellek memory hatası alıyorum.volley veya download menager iş görürmü?

  • İndirilenler listesini değilde, indirdiğimiz şeyi tekrar progam üzerinden nasıl açarız ? Tam olarak sd kartta hangi dosya uzantısında yer alıyor inen dosya?

  • Verdiğiniz kodları kendime göre düzenleyip programı oluşturdum resim linki yapıştırdığımda dowload a tıklayınca hiçbirşey olmuyor sonu .jpg olan link yapıştırdığımda ise indirme işlemi durduruldu hatası verip progrmı kapatıyor neden olabilir ve ayrıca anroidmanifest dosyasında bir değişiklik yapmak gerekiyormu?

  • Arkadaşlar eğer folder yoksa Folder açmanız gerek mp3 tarzı bir sistem kuracaksanız
    String folder = sdCard.getAbsolutePath() + “/klasöradı” ;
    File dir = new File(folder );
    if (!dir.exists()) {
    if (dir.mkdirs()) {

    }
    }
    request.setDestinationInExternalPublicDir(“/klasöradı”, “dosyaadi.uzanti”);
    şeklinde düzenleyeceksiniz

  • İndirilen dosya “İndirilenler” de görünmeden dahili diskte özel bir klasorde saklayabilirmiyim.

  • hocam indirme işlemi başarılı fakat şunları yapamadım..

    1-indirilen dosyayı silemiyorum aslında silindi gösteriyor ama indirilenleri göster dediğimde orada görüyorum diğer indirdiklerimle birlikte örneğin update.apk indiriyorum işim bitince file yeni=new file(path) yeni.delete(); şeklinde siliyorum ama aynı isimle tekrar dosyalar görüyorum.. update.apk varsa silip yeni update.apk dosyasını indirmem gerekiyor.

    2-inen dosyayı kod ile Install edemiyorum..

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?