标签: android-download-manager

使用下载管理器下载时显示进度条

我正在使用下载管理器 api 下载大文件,我也实现了它。但问题是,下载进度的通知显示在状态栏中。但我想使用进度条在活动中显示通知。有没有人做过,如果有请帮帮我。

public class DownloadManagerActivity extends Activity {
private long enqueue;
private DownloadManager dm;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
                long downloadId = intent.getLongExtra(
                        DownloadManager.EXTRA_DOWNLOAD_ID, 0);
                Query query = new Query();
                query.setFilterById(enqueue);
                Cursor c = dm.query(query);
                if (c.moveToFirst()) {
                    int columnIndex = c
                            .getColumnIndex(DownloadManager.COLUMN_STATUS);
                    if (DownloadManager.STATUS_SUCCESSFUL == …
Run Code Online (Sandbox Code Playgroud)

java android download download-manager android-download-manager

5
推荐指数
1
解决办法
1万
查看次数

Android apk 扩展文件 - 可选

我可以使用主扩展文件作为应用程序中的可选下载选项吗?所以我不需要用 APK 文件下载它,但稍后用户会这样做。

android android-download-manager apk-expansion-files

5
推荐指数
1
解决办法
209
查看次数

DownloadManager - 收到 ACTION_DOWNLOAD_COMPLETE,但状态为 STATUS_RUNNING

我在清单中为ACTION_DOWNLOAD_COMPLETE广播注册了一个 BroadcastReceiver 。

当我收到此广播时,我提取下载 ID:

public class DownloadCompleteBroadcastReceiver
    extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent != null) {

            String action = intent.getAction();

            if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
                handleDownloadCompleteReceiver(context, intent);
            }
        }
    }

    private void handleDownloadCompleteReceiver(Context context, Intent intent) {

        long enqueueId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);

        if (enqueueId != -1) {

            Intent startServiceIntent = new Intent(context, HandleAPKDownloadCompleteIntentService.class);

            startServiceIntent.putExtra(HandleAPKDownloadCompleteIntentService.EXTRA_ENQUEUE_ID, enqueueId);

            context.startService(startServiceIntent);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到了一个有效的值enqueueId并开始IntentService处理下载的文件:

@Override
protected void onHandleIntent(Intent intent) {

    long enqueueId …
Run Code Online (Sandbox Code Playgroud)

android android-download-manager

5
推荐指数
1
解决办法
1349
查看次数

编译 Google 下载库 targing API 23 Android Marshmallow

我正在使用 Google 的下载库进行扩展包下载,通过“Android SDK”管理器分发。使用 Eclipse/Ant 构建,因为还没有迁移到 AS/Gradle - 但任何解决方案都会有所帮助。

在 API 23 中,Apache HTTP 消失了。我已经实施了一种解决方法来编译 Google 的 LVL。(Lvl 库和 android 棉花糖

但是下载库要解决的问题要大得多,而且不确定我是否真的想修复 Google 的代码 - 如果需要,可能只是编写自己的代码。

有谁知道方便的“插入”(-ish)替换库或合适的解决方法?

~~

'com.google.android.vending.expansion.downloader.impl.AndroidHttpClient' 中不可用导入的编译错误

导入 org.apache.http.Header; 导入 org.apache.http.HttpEntity; 导入 org.apache.http.HttpEntityEnclosureRequest; 导入 org.apache.http.HttpException; 导入 org.apache.http.HttpHost; 导入 org.apache.http.HttpRequest; 导入 org.apache.http.HttpRequestInterceptor; 导入 org.apache.http.HttpResponse; 导入 org.apache.http.client.ClientProtocolException; 导入 org.apache.http.client.HttpClient; 导入 org.apache.http.client.ResponseHandler; 导入 org.apache.http.client.methods.HttpUriRequest; 导入 org.apache.http.client.params.HttpClientParams; 导入 org.apache.http.client.protocol.ClientContext; 导入 org.apache.http.conn.ClientConnectionManager; 导入 org.apache.http.conn.scheme.PlainSocketFactory; 导入 org.apache.http.conn.scheme.Scheme; 导入 org.apache.http.conn.scheme.SchemeRegistry; 导入 org.apache.http.conn.scheme.SocketFactory; 导入 org.apache.http.conn.ssl.SSLSocketFactory;导入 org.apache.http.entity.AbstractHttpEntity; 导入 org.apache.http.entity.ByteArrayEntity; 导入 org.apache.http.impl.client.DefaultHttpClient; 导入 org.apache.http.impl.client.RequestWrapper; 导入 …

android android-download-manager androidhttpclient android-6.0-marshmallow

5
推荐指数
1
解决办法
903
查看次数

android Downoad Manager 总是得到 STATUS_PENDING

我不知道为什么,但即使文件正在下载,我也总是 STATUS_PENDING 并且它必须是 STATUS_RUNNING。

如果使用可延迟运行的递归方法,在同一 ID 上反复几秒钟后,我得到了正确的状态。有任何想法吗?

获取状态的代码是:

     public static void checkStatus(long downloadId) {
    DownloadManager.Query query = new DownloadManager.Query();
    Cursor cursor = manager.query(query.setFilterById(downloadId));

    if(cursor.moveToFirst()){
        int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
        switch (status) {
            case DownloadManager.STATUS_PENDING:
                Log.d("status", "STATUS_PENDING");
                //here you can set your TIMEOUT solution
                break;
            case DownloadManager.STATUS_PAUSED:
                Log.d("status", "STATUS_PAUSED");
                break;

            case DownloadManager.STATUS_RUNNING:
                Log.d("status", "STATUS_RUNNING");
                break;
            case DownloadManager.STATUS_SUCCESSFUL:
                Log.d("status", "STATUS_SUCCESSFUL");
                break;
            case DownloadManager.STATUS_FAILED:
                Log.d("status", "STATUS_FAILED");
                break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-download-manager

5
推荐指数
0
解决办法
717
查看次数

Android API 采样下载和上传速度

现在这不是一个真正的编程问题,而更像是一个起点。我正在尝试编写一个 Android 应用程序,以每隔几秒和配置文件下载和上传速度进行采样,以及一些更多信息,例如时间戳、GPS 提供的经度和纬度,并在完成后将所有内容另存为 .csv 文件。

我想知道是否有任何 API、库或项目可以用作起点?任何提示?

我找到了ConnectionClass,但我不确定它是否提供了足够的灵活性来做到这一点。

java android profiling speed-test android-download-manager

5
推荐指数
0
解决办法
1548
查看次数

Android 下载管理器路径有时似乎无效

在 android 中通过下载管理器下载有时不会下载并抛出错误路径似乎无效,并在一段时间后自行纠正。这是 Android 下载管理器非常不寻常的行为。

我正在通过以下方式下载到外部存储 request.setDestinationInExternalPublicDir("/app/" , my_app.apk)

当它不下载时,它会在 logcat 中抛出这个错误:-

W/DownloadManager: Path appears to be invalid: /storage/emulated/0/app/my_app.apk
Run Code Online (Sandbox Code Playgroud)

我认为这是因为我在 Android 中的自定义目录中下载,但我不能使用Environment.DIRECTORY_DOWNLOADS,我只能在自定义目录中下载。

如果有人有答案,请告诉我。)

android download-manager android-download-manager

5
推荐指数
1
解决办法
1642
查看次数

Android Webview 无法从 UIDAI 下载

我的 Android 应用程序中有一个 webview。当用户转到 webview 并单击链接下载文件时,没有任何反应。

我正在尝试通过在 UIDAI 网站中输入 aadhaar 编号来下载 offlineaadhaaar zip。但我无法下载文件。请检查我的代码。我试过下载监听器。但下载监听器没有被调用。

public class WebviewActivity extends AppCompatActivity {
     private WebView webView;
     private ProgressDialog dialog;
     private ProgressDialog progress;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_webview);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    webView=(WebView) findViewById(R.id.webView);

    webView.setInitialScale(0);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setUseWideViewPort(true);

 webView.getSettings().setSupportMultipleWindows(true);   
 webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setAllowFileAccess(true);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setDisplayZoomControls(false);
    webView.getSettings().setDomStorageEnabled(true);
    if (Build.VERSION.SDK_INT >= 19) {
        webView.setWebContentsDebuggingEnabled(false);
    }
    if (Build.VERSION.SDK_INT >= 26) {
        webView.getSettings().setMixedContentMode(0);
    }

    webView.clearCache(true);
    webView.clearHistory();
    webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    webView.setScrollbarFadingEnabled(false);
    webView.setWebViewClient(new WebViewClient());
    webView.loadUrl("https://resident.uidai.gov.in/offlineaadhaar");

    webView.setWebChromeClient(new WebChromeClient() {
        @Override
        public …
Run Code Online (Sandbox Code Playgroud)

android android-webview android-download-manager

5
推荐指数
0
解决办法
218
查看次数

下载管理器未在状态栏中显示图标

我的下载管理器未在状态栏中显示通知图标。当您打开所有通知但状态栏中没有图标时,通知是他们的,因此人们无法一眼看出下载已开始。这在较旧的设备上不是问题,并且仅在运行 android 9 pie 的 android 手机上。

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(youtubeDataModel.getUrl()));
    request.setDescription("Downloading " + simpleFileType + "...");
    request.setTitle(fileName);
    request.allowScanningByMediaScanner();
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
    request.setDestinationUri(Uri.fromFile(new File(downloadLocation + "/" + fileName + "." + fileExtension)));
    DownloadManager manager = (DownloadManager) activity.getSystemService(Context.DOWNLOAD_SERVICE);
    manager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)

我希望状态栏显示一个小下载图标,但在较新的设备上它没有

java android android-download-manager

5
推荐指数
1
解决办法
235
查看次数

如何下载受 NTLM 身份验证保护的文件

我曾尝试使用 Android 的 DownloadManager apis 进行下载,但未能成功。

这是我的示例代码,它返回给我下载失败。

webView.setDownloadListener(new DownloadListener() {
        @Override
        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
            String filename = URLUtil.guessFileName(url, contentDisposition, mimetype);
            DownloadManager.Request request = new DownloadManager.Request(
                    Uri.parse(url));
            request.allowScanningByMediaScanner();
            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); //Notify client once download is completed!
            request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, filename);
            DownloadManager dm = (DownloadManager) MainActivity.this.getSystemService(MainActivity.this.DOWNLOAD_SERVICE);
            dm.enqueue(request);
        }
    });
Run Code Online (Sandbox Code Playgroud)

android android-download-manager ntlm-authentication

5
推荐指数
1
解决办法
152
查看次数