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

Android共享应用私有文件

高迪
2023-03-14

是否可以通过Intent将一些音频文件分享给其他应用程序,如telegram、google drive、whatsapp?我的文件被下载并保存在我的应用程序专用文件夹中,如:/data/user/0/mypackage/app_nameoffolder/file.mp3

我写了这个简单的方法:

    public void sendSound(String fileToSend){
    try{

        Log.d(TAG,"Sending: " + fileToSend);
        Intent sharingIntent = new Intent(Intent.ACTION_SEND);
        Uri audioUri = Uri.parse(fileToSend);
        sharingIntent.setType("audio/*");
        sharingIntent.putExtra(Intent.EXTRA_STREAM, audioUri);
        startActivity(Intent.createChooser(sharingIntent, "Share"));

    }catch (Exception e){
        Log.d("TAG",e.getMessage());
        Log.d("TAG",e.toString());
    }

}

但我无法共享它,如果我将文件移动到公共目录,如environment.getExternalStoragePublicDirectory(environment.directory_downloads).getPath()+“/file.mp3”;时,将出现错误:“无法共享请重试”

它起作用了,所以我认为这是一些与许可有关的东西,所以这是我的舱单:

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

不知道我做错了什么。

共有1个答案

胡劲
2023-03-14

第三方应用程序无权访问您的内部存储部分。

最有可能的是,您可以使用FileProvider使此内容可供其他应用程序使用,至少如果您的文件位于GetFilesDir()GetCachedir()下的某个位置。

 类似资料:
  • 我试图通过ACTION\u SEND intent与图像共享文本。问题是图像由URL表示,而不是本地URI。我目前拥有的代码是: 现在我已经尝试了一些变体。我尝试了setType(“image/*”),我尝试了从URL解析Uri,我尝试了传递URL字符串本身,等等。到目前为止似乎没有什么工作。但是,当发送到twitter时,我确实看到了文本,而不是图像。 编辑:显然最初的描述不够有帮助,所以...

  • 我正在使用FB。允许用户使用此代码共享我的页面的ui: 当从 Android 移动应用程序中的嵌入式浏览器共享页面时,用户可以选择要用于打开共享对话框的应用程序。如果选择了脸书应用,则不会有回调响应。在普通的桌面浏览器中,一切都按预期工作。这种行为是预期的吗?

  • 我正在使用Facebook SDK 4.2通过Android版的Facebook Messenger发送一个文件(具体来说,我正在导出一个序列化对象)。 但是,每个人都只提到图像、音频和视频。甚至文档也没有提到“text/平原”作为支持的MIME类型。 出于curosity,我决定尝试使用“image/jpeg”共享文件,结果成功了。文件已发送,messenger允许下载,但我认为这不是正确的方式

  • 问题内容: 我希望当用户共享另一个应用程序(例如浏览器)的URL时,我的Android应用程序显示为一个选项。我该如何注册我的应用程序?我如何反应链接共享? 非常感谢。 编辑: 我试过像这样使用IntentFilter,但没有成功: 有任何想法吗? 问题答案: 您至少需要: 在清单中…至少会使其显示在“共享”列表中。 您缺少的最重要的部分是: 要使其实际执行某项操作,您需要一个Activity。

  • 问题内容: 首先,我想说两件事。首先,很抱歉,如果已经有人问过这个问题,我已经搜索了与此主题相关的类似问题,但找不到解决方案。其次,对于冗长的问题,我们深表歉意,如有任何错误,请通知我,我将确保做出适当的更改:)。 我是Android开发的新手(大约2个月),所以请原谅我的无知。我有关于Android服务的问题。 我的问题如下,我创建了以下3个应用程序: 一个包含小型测试服务( myService

  • 我在应用程序之间在android上共享内容时遇到问题,使用Intent我可以成功共享纯文本(在G、Facebook和Facebook Messenger上)代码如下: 但是,当谈到图像时,事情并不奏效。Intent已经创建,我实际上可以在与之共享图像的应用程序之间进行选择,但当所选应用程序尝试启动时,它只是崩溃,无法打开。没有应用程序工作(使用9Gag、G、Facebook、Facebook Me