可以下载管理器将文件保存在android的内部存储中吗?

时间:2017-07-11 07:59:29

标签: android android-download-manager

我读到某个地方,#include<bits/stdc++.h> #define LL long long using namespace std; int T; set<LL> pre; LL n, M, a[100010], ans, sum; int main() { cin >> T; while(T--){ ans = sum = 0; pre.clear(); cin >> n >> M; for(int i=0; i<n;i++) cin >> a[i]; for(int i=0; i<n; i++){ (sum += a[i]) %= M; ans = max(ans, sum); ans = max(ans, (sum - *(pre.upper_bound(sum))+M)%M); pre.insert(sum); } cout << ans << endl; } return 0; } 在android中无法将文件保存在Download Manager中,因为internal storage不在我的应用程序进程中运行,而是在由系统控制的另一个进程中运行。 Download Manager个位置受版权保护,您提供的任何位置只能由我的应用程序访问。

但是当我使用此代码时,它将我的文件保存在内部存储中:

Internal storage

我很困惑,任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

由他的名字指示的DownloadManager,是来自android的外部经理。您无法使用下载管理器将文件保存在内部存储中,因为此目录仅适用于您的应用程序。您需要Content Provider将文件保存在临时目录中,然后将其保存在内部存储中。

希望现在还不晚:)

答案 1 :(得分:1)

内部存储意味着应用程序的内部存储设备的内部存储。应用程序的内部存储只能由应用程序本身访问。这就是下载管理器无法将文件直接保存到内部存储的原因。

Android Documentation

有一种解决方法。您可以像往常一样将文件下载到外部存储器,然后将其复制到广播接收器中应用程序的内部目录。

希望有所帮助