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

错误的意图Uri数据共享音频文件

习洲
2023-03-14

我正在尝试分享音频(.mp3)从第三个应用程序到我的android应用程序。当我接收到音频并获得意图信息(Uri soundUri=(Uri)intent.GetParcelableExtra(intent.Extra_Stream))时,Uri有错误的数据。路径正确,但文件名已用数字(例如5348)重命名,没有扩展名,实际文件名为Audio-6151616.mp3

因此,完整路径是/storage/emulated/0/download/audio-6151616.mp3,但我的意图Uri是/storage/emulated/0/download/5348

如果我从另一个第三方应用程序(我使用的是文件资源管理器应用程序)分享这个音频,它似乎工作良好,但如果我使用其他应用程序,甚至是“原生”下载的应用程序(在Moto G上),它就不行了。

我错过了什么?

提前致谢

共有1个答案

宦砚
2023-03-14

你应该查看官方的培训文档以供分享。您应该总是期望content:/URI类似于content:/download/5348。因为您应该调用GetContentResolver().OpenInputStream(uri)。所以您最终可以使用ShareCompat.IntentReader。

其他值得关注的研究是:

  • 共享内容(Android开发模式S2 Ep 6)
  • 忘记存储权限:共享和协作的备选方案(Big Android BBQ 2015)
 类似资料:
  • 我正在尝试制作一个用于共享音频文件的按钮。这不起作用。首先,我试图直接从原始文件夹发送文件,而不将其复制到手机卡上。这并没有解决我的问题。我尝试的第二件事是将文件保存到手机上,然后共享。将文件保存到手机的部分现在可以工作了,但当我尝试将音频文件共享到其他设备时,所有兼容的应用程序(Whatsapp、Gmail等)都崩溃了。 这是我的代码: 顺便说一下,音频文件是一个。ogg文件。我希望这些应用程序

  • 我正在尝试做一个应用程序,共享的孩子是在应用程序的“原始”文件夹,但我没有得到它。该文件是共享的,但没有.mp3扩展名。我无法收听Windows Media Player,但我手动放了一个.mp3扩展名。有没有人知道我是怎么做到的。mp3扩展自动?将URI转换/重命名为mp3文件。 歌曲的名字是在文件中注册的,我相信,如果有可能重命名添加.mp3在最后可能会起作用。但我不能重命名。 我正在使用以下

  • 我有我导出到数据uri图像的HTML画布。现在我想通过点击我页面上的自定义链接,在Facebook时间线上尽可能轻松地分享这张图片(无需创建FB应用程序和身份验证令牌)。 我试过这样的方法: 图像生成: 共享链接: 当我点击链接Safari我得到 如何通过Facebook共享者URL(或其他方式)轻松共享数据uri图像? 谢谢你的回答!

  • 例如,当我选择在GMail上分享时,它会说“无法附加空文件”。看起来我没有得到正确的文件路径,所以我基本上没有共享任何内容。我做错了什么? 任何帮助都将不胜感激。

  • 我正在尝试共享RES/RAW文件夹中的音频文件。到目前为止我所做的是: 例如,当我选择在GMail上分享它时,它会说“无法附加空文件”之类的话。看来我没有得到正确的文件路径,所以我基本上没有共享任何东西。我做错了什么? 任何帮助都将不胜感激。

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