我不太确定该问什么或在哪里找到这个,所以请原谅,如果这听起来特别愚蠢。我了解如何使用自定义提供商从我的应用分享数据。
我要做的是创建一个选择器来共享当前播放的音乐文件。我从DATA
的{{1}}列中获取文件名,然后在我的活动中,我有以下代码:
MediaStore
这正确显示了要与之共享的应用程序列表,并选择一个填充文件的名称。但是,数据不包括在内。例如,如果我与Gmail共享,则附件按名称显示,但没有大小,然后发送电子邮件会丢失附件。
注意:是的,共享外部文件是违反当前建议的。请尊重我知道自己要做的事情。
答案 0 :(得分:0)
不要使用/(?:background(?:-image)?|list-style)[\s]*:[^\r\n;]*url\((?!['"]?(?:data|http):)['"]?([^'"\)]*)/g
URI进行共享。它要求接收应用程序具有file://
权限。
而是将FileProvider与READ_EXTERNAL_STORAGE
一起使用,以允许接收应用通过内容提供商访问该文件,而无需特殊权限。
要了解详情,请查看Ian Lake的视频Sharing Content (Android Development Patterns S2 Ep 6)以及相关联的Sharing Content between Android apps。
答案 1 :(得分:-2)
使用Uri.fromFile(new File(song.filename))让一个好的Uri投入到意图中。