발리 플러스 (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에서 내 앱을 실행하고 있습니다. 얘들 아 여기서 문제가 뭐야?
주의 할 점은 Volley는 메모리의 모든 데이터를 보유한다는 점에 유의하십시오. 파일 다운로드의 경우 모든 것을 메모리에 보관하지 않고 저장소에 작은 덩어리를 쓰는 것이 좋습니다. – user90766