こんにちは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);
ファイルをキャッシュフォルダに保存する方法は、デバイス製造で許容されるフォルダの1つのみです。