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

将文件保存到外部存储中的文件夹并共享

姬旭
2023-03-14

我正在制作一个soundboard应用程序,当长按按钮1时,我需要共享sound1。我可以用以下代码创建共享菜单:

Button button1;


    button1 = (Button) v.findViewById(R.id.button1);
    button1.setLongClickable(true);

    button1.setOnLongClickListener(new View.OnLongClickListener() {

        @Override
        public boolean onLongClick(View arg0) {

            Intent shareIntent = new Intent(Intent.ACTION_SEND);
            shareIntent.setType("audio/ogg");

            Uri.parse("android.resource://test.testapp/" + R.raw.sound1);
            shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://test.testapp/" + R.raw.sound1));
            startActivity(Intent.createChooser(shareIntent, "Share Sound"));

            return true;
        }

    });


    return v;
}

我可以与whatsapp和Google Drive完美共享音频文件,但其他应用程序不起作用。我听说您必须将文件复制到外部存储,并从那里共享它们。我已经搜索了将近两天,但我找不到这样做的方法。Stack上的其他文章也帮不了我:/

如何在外部存储器中创建目录,将文件(sound1.ogg)从我的/原始文件夹复制到该文件夹,然后与另一个应用程序(Gmail、Google Drive、Whatsapp、Skype等)共享该声音?

共有1个答案

农弘毅
2023-03-14

将某些内容保存到外部存储非常简单。首先,您需要将其添加到清单文件中,以允许外部存储写入:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

然后在活动/片段中:

 String root = Environment.getExternalStorageDirectory().toString();
 File myDir = new File(root + "/saved_images");  
 myDir.mkdirs();  
 File file = new File (myDir, "FILE_NAME");
 ... however you write the file through output stream ....

由于这些是音频文件,您应该将它们存储在每个用户android手机的公共音频库中。您可以这样访问它:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)

我建议通过这篇文章了解更多信息!

 类似资料:
  • 我的应用程序将一些文件保存到设备上的数据/数据文件夹中。保存远程文件后,我会处理这些文件,并将它们复制到其他文件夹中。在之前测试过的所有设备上,All都能正常工作,但在galaxy s3上会生成空指针异常。似乎我不被允许在那个文件夹上写或处理文件!但只有新的星系s3!我也无法使用EclipseDDMS文件浏览器在数据文件夹中找到任何文件,而在模拟器(相同的android版本)中,我可以正确查看所有

  • 我试图使用Adobe reader读取从服务器下载的pdf文件,但问题是当我将其存储在内部存储时,其他应用程序无法读取该文件。现在我想知道如何将此文件复制到外部存储(/sdcard/)中,以便pdf查看器可以查看。 由于安全原因,我将文件存储在内部存储,然后删除外部存储的文件。 我的问题是如何复制保存在内部存储中的文件,而不使用raw或将其放入InputStream中的资产。

  • 问题内容: 我的应用程序( Android API 15 )制作图片并将其存储在内部存储器的文件夹中。现在,我想将此文件复制到外部存储中的另一个文件夹,例如。我尝试了以下方法: 方法1: 方法2: 方法3: 这些方法都不能解决我的任务。在检查了许多相关主题之后,我发现的唯一建议是验证 在和它确实存在。 该 方法#1 完成执行,但没有文件夹和文件被复制。 在 方法#2 ,应用程序失败,异常的,但对象

  • 这些方法都不能解决我的任务。中检查了一些相关主题,我发现的唯一建议是验证 在中,并且它仍然存在。 方法#1完成执行,但没有复制文件夹和文件。 因为这是我迈向Android的第一步,我觉得我错过了一些小东西。请告诉我,如何在Android中将文件从一个文件夹复制到另一个文件夹,包括文件从内部内存移动到外部内存。

  • 我尝试用以下代码保存从internet下载的文件 但在运行时,我得到的错误如下 03-04 20:42:51.080 8972-8972/com.example.me.demo2 E/BitmapFactory:无法解码流:java.io.FileNotFoundExcoop: /storage/emulated/0/.tanks/4a100abb-0e55-4062-8c37-f11f4189e