안녕하세요, 저는 캐시 디렉토리에 OTA 파일을 다운로드하려고합니다. 이 코드를 호출하고 때캐시 폴더에 파일 다운로드
try{ otaFile = new File(Environment.getDownloadCacheDirectory().getAbsolutePath() + File.separator + "update_unsigned" + ".zip");
Uri uri = Uri.parse(data.getFileUrl());
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setTitle(data.getVersionUpdate()).
setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationUri(Uri.fromFile(otaFile));
downloadManager = (DownloadManager) context.getSystemService(DOWNLOAD_SERVICE);
downloadId = downloadManager.enqueue(request);
emitter.onSuccess("saving to " + otaFile + " id - " + downloadId);
} catch (Exception e) {
emitter.onError(new Throwable(e.getMessage()));
}
나는 예외에 직면
/chche/update_unsigned.zip 지원되지 않는 경로를 내 애플 다음과 같은 권한이 있습니다
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />/
<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM" />
나는 나의 AP를 실행하고를 시스템 앱.
또한 다운로드 관리자가 setDestinationToSystemCache() 메소드를 숨겼습니다. 그러나이를 리플렉션으로 가져 오려고 할 때 찾을 수 없습니다.
Class cls;
cls = Class.forName("android.app.DownloadManager");
Method m;
m = cls.getMethod("setDestinationToSystemCache", new Class[]{});
m.setAccessible(true);
m.invoke(null);
그것은 단지 하나의 폴더가있는 한, 캐시 폴더에 파일을 저장하는 방법을 찾아 내 도와주세요 디바이스 제조에 허용하는.