2016-09-14 3 views
0

발리 플러스 (https://github.com/DWorkS/VolleyPlus/blob/master/library/src/com/android/volley/request/DownloadRequest.java)를 사용하여 파일을 다운로드하려고합니다. 내 코드는 다음과 같습니다.다운로드 발리에 요청하여 플러스 파일을 다운로드하지 않습니다.

@Override 
public void downloadFile(String url, final String path, OnViewDocsFinished mListener) { 
    //url = "http://www.orimi.com/pdf-test.pdf" 
    //String name = "passport.pdf"; 
    //String path = Environment.DIRECTORY_DOWNLOADS+"/"+name; 
    DownloadRequest request = new DownloadRequest(url, path, 
      createSuccessListener(mListener, path), 
      createErrorListener(mListener)); 
    VolleySingleton.getRequestQueue().add(request); 
} 
private Response.Listener<String> createSuccessListener(final OnViewDocsFinished loginListener, final String path) { 
    return new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      try { 
       Log.i(TAG, response.toString()); 
       loginListener.onDownloadFinished(path); 
      } catch (Exception e) { 

      } 
     } 
    }; 
} 
private Response.ErrorListener createErrorListener(final OnViewDocsFinished loginListener) { 
    return new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Log.e(TAG, error.toString()); 

     } 
    }; 
} 

파일이 해당 위치로 다운로드되지 않습니다. 내 매니페스트 파일은 다음과 같습니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
package="in.yumigo.yumigovendor"> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.READ_SMS" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.RECEIVE_SMS" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<uses-permission android:name="android.permission.USE_CREDENTIALS" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.SEND_SMS" /> 
<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" /> 
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

Android Lollipop에서 내 앱을 실행하고 있습니다. 얘들 아 여기서 문제가 뭐야?

답변

0

사용자 지정 문자열 요청을 작성하여 iebyte [] 파일을 다운로드하려고했습니다. 문자열 요청을하면 문자열 응답 만받습니다. 귀하의 경우 byte [] 요청을해야합니다.

발리에 대한 맞춤 요청 클래스를 설정하는 방법에 대한 아래 링크를 확인하십시오. Implementing a Custom Volley Request.

아래 링크는 귀하가하려는 것을 동일한 요청으로하고 있습니다. 희망이 당신을 도울 수 있습니다. Downloading files using volley.

+0

주의 할 점은 Volley는 메모리의 모든 데이터를 보유한다는 점에 유의하십시오. 파일 다운로드의 경우 모든 것을 메모리에 보관하지 않고 저장소에 작은 덩어리를 쓰는 것이 좋습니다. – user90766