更新Android"下载"不使用DownloadManager的文件夹

时间:2016-01-31 18:51:30

标签: android android-intent android-asynctask android-6.0-marshmallow android-download-manager

我目前正在运行 Marshmallow ,我已将我的应用程序设置为使用以下路径将文件下载到手机的下载文件夹中:

$timeout

carousel-panel > ng-transclude > * { -webkit-transition: opacity 0.5s ease-in-out; -moz-transition: opacity 0.5s ease-in-out; -ms-transition: opacity 0.5s ease-in-out; -o-transition: opacity 0.5s ease-in-out; opacity: 1; } carousel-panel.fade > ng-transclude > * { opacity: 0; } 。一切正常,我可以访问下载的文件。

但问题是,文件只能通过手机使用文件浏览器访问,而不能通过Android应用程序通过默认的Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) 文件夹访问。我了解您可以使用Android AsyncTask自动执行此操作,但我希望保留Downloads的当前实现,而不必使用DownloadManager

我的问题是,有没有办法可以简单地刷新"或者"更新" AsyncTask文件夹中的内容是什么,以便它们显示使用Android下载应用程序?

我也尝试使用媒体扫描程序Intent(刷新图库),但根据我的理解,这不适用于 Marshmellow

DownloadManager

2 个答案:

答案 0 :(得分:3)

  

有没有一种方法可以简单地“刷新”或“更新”下载文件夹中的内容,以便它们显示在Android下载应用程序中?

“下载”应用程序仅显示其自身ContentProvider中的内容,而后者又由DownloadManager下载的内容驱动。它没有显示任何特定设备上目录的内容,并且没有记录或支持ContentProvider进行独立访问。

  

我也尝试使用媒体扫描程序Intent(刷新图库),但据我了解,这对Marshmellow不起作用。

即,使用MediaScannerConnectionscanFile(),即可让查询MediaStore的应用查看您的文件。这包括MTP守护进程; MTP是桌面操作系统查看Android设备外部存储内容的方式。这些都不会直接影响下载应用。

答案 1 :(得分:2)

如果没有DownloadManager类,我不这样做。我在AsyncTask中使用以下内容

Transform planet;    // The planet to fly around
float speed = 5;         // The movementSpeed
Vector3 flyDirection;   // The direction, it flies around

void Start()
{
    planet = GameObject.FindGameObjectWithTag("Planet").transform;  // Get the transform of the planet

    Vector3[] directions = { Vector3.left, Vector3.right, Vector3.up, Vector3.down };    // The possible directions to fly
    flyDirection = directions[Random.Range(0, directions.Length)];           // Get a random fly direction
}

void Update()
{
    transform.RotateAround(planet.position, flyDirection, speed * Time.deltaTime);           // Fly around the planet 
    transform.Rotate(..);     // Rotate the Object to the fly direction
}

这将使文件显示在6.0上的Downloads应用程序中,即使该文件是在本地创建的。