当前位置: 首页 > 知识库问答 >
问题:

我们可以通过打开下载文件夹吗。意图

訾高明
2023-03-14

实际上,我需要从我的应用程序中打开默认的下载文件夹。可以吗?如果可以,请提供一些参考。

我可以在以下帮助下获取下载文件夹的路径:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)

任何帮助都将不胜感激。

共有3个答案

邓光赫
2023-03-14

我在三星和LG的下载中显示文件时遇到了类似的问题,我刚刚为DownloadManager添加了文件参数“downloaded”,并在下载中显示文件:

  DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
        downloadManager.addCompletedDownload(file.getName(), file.getName(), true,
                "application", file.getPath(), file.length(), true);
淳于烈
2023-03-14

三星解决方案:

public static void openDownloads(@NonNull Activity activity) {
    if (isSamsung()) {
        Intent intent = activity.getPackageManager()
                .getLaunchIntentForPackage("com.sec.android.app.myfiles");
        intent.setAction("samsung.myfiles.intent.action.LAUNCH_MY_FILES");
        intent.putExtra("samsung.myfiles.intent.extra.START_PATH", 
                getDownloadsFile().getPath());
        activity.startActivity(intent);
    }
    else activity.startActivity(new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS));
}

public static boolean isSamsung() {
    String manufacturer = Build.MANUFACTURER;
    if (manufacturer != null) return manufacturer.toLowerCase().equals("samsung");
    return false;
}

public static File getDownloadsFile() {
    return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
}

通过反编译Samsung My Files应用程序dex并查看MainActivity如何处理意图发现。

public static final String MYFILES_NOTIFICATION_LAUNCH_INTENT_NAME = "samsung.myfiles.intent.action.LAUNCH_MY_FILES";
public static final String NOTIFICATION_START_PATH = "samsung.myfiles.intent.extra.START_PATH";
public static final String START_PATH = "FOLDERPATH";

if (Constant.MYFILES_NOTIFICATION_LAUNCH_INTENT_NAME.equals(intent.getAction())) {
                String startNotificationPath = intent.getStringExtra(Constant.NOTIFICATION_START_PATH);
                if (startNotificationPath != null) {
                    Bundle newArgument = new Bundle();
                    newArgument.putString(Constant.START_PATH, startNotificationPath);
                    if (new File(startNotificationPath).exists()) {
                        startBrowser(513, newArgument);
                    }
                }
                intent.removeExtra(Constant.NOTIFICATION_START_PATH);
            }
司信厚
2023-03-14

您可以按以下意图显示最近的下载活动

startActivity(new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS));

自API 9起提供

 类似资料:
  • 问题内容: 实际上,我需要从应用程序中打开默认的“下载”文件夹。可能吗?如果是,请提供一些参考。 我可以借助以下方法获得“下载”文件夹的路径: 任何帮助将不胜感激。 问题答案: 您可以使用以下内容显示最近的下载活动 自API 9起可用

  • 我在sdcard中的某个文件夹中有一些pdf文件。我创建了一个将所有pdf显示为ListView的应用程序。当我单击任何pdf文件时,它会在officeSuite应用程序(不支持或损坏文件格式)中出现错误。代码有问题。这是代码。 //显示为ListVIew的项目代码 //打开文件的代码VIA Intent 错误: 损坏或不支持的文件格式

  • 问题内容: 如何通过单击任何链接打开本地文件夹视图? 我尝试了很多选择 要么 要么 问题答案: 由于安全性限制,在所有现代浏览器中都禁止链接到本地​​资源。 对于Firefox: 为了安全起见,Mozilla应用程序阻止从远程文件到本地文件(和目录)的链接。这包括链接到硬盘驱动器,映射的网络驱动器上的文件,以及通过统一命名约定(UNC)路径访问的文件。这样可以避免许多不愉快的可能性,包括: 允许站

  • 问题内容: 我正在通过puppeteer将文件下载到我的目录中。我需要将此文件上传到s3存储桶,因此我需要选择文件名。但是问题是,此文件名的时间戳每次都会更改,因此我无法保留硬编码名称。那么有没有办法解决这个问题,以便每次都获得一个常量名称(即使替换了旧文件),或者如何重命名正在下载的文件? 我想到了使用节点的fs.rename()函数,但这又需要当前的文件名。 我想要一个恒定的文件名来进行硬编码

  • 我对maven有依赖性问题。我曾经拥有位于maven central的saxon 8.7。然后,我不得不升级到最新的saxon-B9.1。0.0,仅部分位于maven central上。 这是我的依赖项的一个片段: 第一个工件“saxon”在maven central上可用,但第二个工件“saxon dom”可用。这是我想要的人工制品。 我可以告诉maven下载“jar”文件吗?或者我必须下载ja

  • 我所尝试的: 显然,可以解决SDK<=29的问题。然而,我没有测试它,因为我想首先检查一个Android Q的解决方案。 getExternalStoragePublicDirectory表示: 是否可以在Android Q(SDK>=29)中以编程方式列出下载的文件?如果是,怎么做?