2012-02-09 18 views
1

ファイルダウンロードに問題がありますAndroid携帯でファイルをダウンロードできません - Android ..?

エミュレータでファイルをダウンロードできますが、電話機では動作しません。 私はインターネットの許可を定義し、SDカードを書きました。

サーバーに1つのdocファイルがあり、ユーザーがダウンロードをクリックした場合。ファイルをダウンロードします。このは、エミュレータでは正常に動作しますが、電話では機能しません。

Plz解決策を見つける手助けをしてください。

ありがとうございます。

* 編集*

public void downloadFile(String _url, String fileName) { 
     File PATH = Environment 
       .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); 
     try { 
      PATH.mkdirs(); 
      URL url = new URL(_url); // you can write here any link 
      File file = new File(PATH, fileName); 

      long startTime = System.currentTimeMillis(); 
      Log.d("Manager", "download begining"); 
      Log.d("DownloadManager", "download url:" + url); 
      Log.d("DownloadManager", "downloaded file name:" + fileName); 
      /* Open a connection to that URL. */ 
      URLConnection ucon = url.openConnection(); 

      /* 
      * Define InputStreams to read from the URLConnection. 
      */ 
      InputStream is = ucon.getInputStream(); 
      BufferedInputStream bis = new BufferedInputStream(is); 

      /* 
      * Read bytes to the Buffer until there is nothing more to read(-1). 
      */ 
      ByteArrayBuffer baf = new ByteArrayBuffer(50); 
      int current = 0; 
      while ((current = bis.read()) != -1) { 
       baf.append((byte) current); 
      } 

      /* Convert the Bytes read to a String. */ 
      FileOutputStream fos = new FileOutputStream(file); 
      fos.write(baf.toByteArray()); 
      fos.close(); 
      Log.d("ImageManager", 
        "download ready in" 
          + ((System.currentTimeMillis() - startTime)/1000) 
          + " sec"); 

     } catch (IOException e) { 
      Log.d("ImageManager", "Error: " + e); 
     } 
    } 
+1

logcatに何らかのエラーがありますか?多分いくつかのコードスニペット? –

+1

いくつかのコードを貼り付けます。この情報はあなたを助けるのが難しいです:) – oriolpons

+0

Nop、logcatはエラーをもたらしません。 –

答えて

2

が怒鳴る与えられたスニペットを試しダウンロードファイルのための私のコード...

File PATH = Environment 
       .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); 
     try { 
      //set the download URL, a url that points to a file on the internet 
      //this is the file to be downloaded 
      _url = _url.replace(" ", "%20"); 
      URL url = new URL(_url); 

      //create the new connection 
      HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 

      //set up some things on the connection 
      urlConnection.setRequestMethod("GET"); 
      urlConnection.setDoOutput(true); 


      //and connect! 
      urlConnection.connect(); 

      //create a new file, specifying the path, and the filename 
      //which we want to save the file as. 
      File file = new File(PATH,fileName); 

      //this will be used to write the downloaded data into the file we created 
      FileOutputStream fileOutput = new FileOutputStream(file); 

      //this will be used in reading the data from the internet 
      InputStream inputStream = urlConnection.getInputStream(); 

      //this is the total size of the file 
      int totalSize = urlConnection.getContentLength(); 
      Log.i("Download", totalSize+""); 
      //variable to store total downloaded bytes 
//   int downloadedSize = 0; 

      //create a buffer... 
      byte[] buffer = new byte[1024]; 
      int bufferLength = 0; //used to store a temporary size of the buffer 

      //now, read through the input buffer and write the contents to the file 
      while ((bufferLength = inputStream.read(buffer)) > 0) { 
        //add the data in the buffer to the file in the file output stream (the file on the sd card 
        fileOutput.write(buffer, 0, bufferLength); 
      } 
      //close the output stream when done 
      fileOutput.close(); 
      return true; 

    //catch some possible errors... 
    } catch (MalformedURLException e) { 
      e.printStackTrace(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 

正しいダウンロードパスを入力する持っていることを確認(URL)を作る

関連する問題