私のアプリケーションは、DownloadManager を使用して Web サイトから jpg をダウンロードし、/sdcard/Android/name.app/ ディレクトリに保存して、アプリケーションのいくつかのフラグメントで使用します。ダウンロードは問題なく動作しますが、jpg はギャラリー アプリケーションに表示されます。これらはアプリケーションの単なるアセットであるため、これは望ましくありません。ギャラリー アプリケーションに表示されないようにする方法がわかりません。作成されたディレクトリに .nomedia ファイルを追加しようとしました。どんな助けでも大歓迎です!
DownloadManager myDownloadManager = (DownloadManager) myActivity.getSystemService(Context.DOWNLOAD_SERVICE);
Request myRequest = new Request(Uri.parse(episodeArtLink));
myRequest.setNotificationVisibility(Request.VISIBILITY_HIDDEN);
myRequest.setVisibleInDownloadsUi(false);
myRequest.setDestinationInExternalFilesDir(myActivity, Environment.DIRECTORY_DOWNLOADS, myFilename);
myDownloadManager.enqueue(myRequest);
MediaScanner が画像をシステム データベースに追加しているため、要求していないにもかかわらず、問題が発生しているようです。
問題を示すテストアプリを作成しました。[ダウンロード] ボタンをクリックすると、Google ロゴがアプリに表示されます。ギャラリー アプリに移動すると、ダウンロードという名前のギャラリーにも Google ロゴが表示されます。[設定] -> [アプリ] に移動し、ギャラリーとメディア ストレージのデータを消去すると、ファイルが /sdcard/Android/data/ の下にあり、 .nomedia ファイル。/sdcard/Android/data/com.example.downloadmanagertest/files/Download/ に移動して、イメージがまだ電話にあることを確認できます。再起動後も、ギャラリーとメディア ストレージのデータを消去すると、画像がギャラリーに表示されません。4.2.2 を実行している Nexus 4 と Nexus 7 の両方でこれをテストしました。
ソース: https://dl.dropboxusercontent.com/u/114414/DownloadManagerTest.zip