web-dev-qa-db-ja.com

Androidダウンロードインテント

URLをダウンロードする目的は何ですか?ブラウザでは、小さな通知アイコンが付いたものをダウンロードします。私はその意図を使用できるかどうか(そしてそれが何であるか)を考えていました。

35
Isaac Waller

アプリケーションは、ブラウザーやGmailと同様に、ダウンロードマネージャーを使用してファイルをダウンロードできます。これはジンジャーブレッドから利用可能です。

アプリがダウンロードを開始するには、[〜#〜]インターネット[〜#〜]権限が必要です。ファイルをデフォルトのダウンロードディレクトリに保存するには、 WRITE_EXTERNAL_STORAGE 許可。

URIをダウンロードする方法は次のとおりです。

DownloadManager.Request r = new DownloadManager.Request(uri);

// This put the download in the same Download dir the browser uses
r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "fileName");

// When downloading music and videos they will be listed in the player
// (Seems to be available since Honeycomb only)
r.allowScanningByMediaScanner();

// Notify user when download is completed
// (Seems to be available since Honeycomb only)
r.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

// Start download
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(r);

通知のカスタマイズ、ダウンロード状態のクエリ、ダウンロード場所の設定には、他にもたくさんのオプションがあります。

このブログ投稿 は、Androidの以前のバージョンで非表示のAPIを介してダウンロードマネージャーを使用する方法を示しています。

69
Alex Jasmin

ブラウザーにダウンロードインテントがあるとは思いませんが、通常のACTION_VIEWインテントを使用して、ブラウザーにコンテンツタイプに基づいてURLをダウンロードするか表示するかを決定させることができます。

コードトリガーから

new Intent(Intent.ACTION_VIEW, Uri.parse(url))

これがブラウザでダウンロードをトリガーすることを願っています。

19
dparnas

あなたは何をしようとしているのですか?アプリがファイルをダウンロードしたい場合は、UrlConnectionコードを使用できます。パッケージをダウンロードする場合は、ACTION_PACKAGE_INSTALLはあなたがやりたいことをするべきです。

1
hacken

ご覧ください ここ ですべてAndroidインテント。

0
GregD