将 Firebase 图像 URI 共享给其他应用时共享失败?

Posted

技术标签:

【中文标题】将 Firebase 图像 URI 共享给其他应用时共享失败?【英文标题】:Sharing failed while sharing Firebase image URI to other apps? 【发布时间】:2018-08-26 07:09:49 【问题描述】:

将图像 URI 共享给其他共享时失败。所以我想要一个关于如何使用蓝牙、whatsapp 等将我的应用图像分享给其他应用的解决方案。

这是我的代码:

ArrayList <Uri> imageUri = new ArrayList<>();

for (int i = 0; i < urimodel.size(); i++) 
 Uri model_uri = urimodel.get(i); //getting uri from here

 imageUri.add(model_uri);

 Intent shareIntent = new Intent();
 shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
 shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUri);
 shareIntent.setType("image/*");
 context.startActivity(Intent.createChooser(shareIntent, "Share images to.."));

【问题讨论】:

【参考方案1】:

我的建议是先保存你想分享的图片,然后传递 uri

参考:Share Image with Other Apps

试试这个

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
shareIntent.setType("image/*");

// For a file in shared storage.  For data in private storage, use a ContentProvider.
Uri uri = Uri.fromFile(getFileStreamPath(pathToImage));
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(shareIntent)

如果您想通过 assets 文件夹共享它,您必须使用 ContentProvider。请参阅此答案以了解如何执行此操作:

https://***.com/a/7177103/1369222

android Manifest 中添加 File Provider

<provider
android:name="android.support.v4.content.FileProvider"
android:grantUriPermissions="true"
android:exported="false"
android:authorities="$applicationId">

<meta-data
    android:name="android.support.FILE_PROVIDER_PATHS"
    android:resource="@xml/file_provider_paths"/>

file_provider_paths.xml

<paths>
    <cache-path name="cache" path="/" />
    <files-path name=”files” path=”/” />
</paths>

看到How to use support FileProvider for sharing content to other apps?

【讨论】:

【参考方案2】:

这一定是因为您的 Firebase 存储设置不允许在没有身份验证的情况下进行读写

只需转到存储>规则并使用此更改规则

service firebase.storage 
  match /b/bucket/o 
    match /allPaths=** 
      allow read;
      allow write: if request.auth != null;
    
  

这将使每个人都可以阅读您的图像

警告读取和写入存储数据库也很重要,您需要支付费用才能在一定限制后继续工作。查看价格here

【讨论】:

感谢您真实地分享您的经验,我不知道定价。 欢迎@Ahsan。

以上是关于将 Firebase 图像 URI 共享给其他应用时共享失败?的主要内容,如果未能解决你的问题,请参考以下文章

将图像共享到其他应用程序的通用方式

从内容 URI 中获取搜索图像的绝对文件路径

如何使用 Xamarin Essentials Share 将应用程序链接共享给其他用户并在他们单击后打开应用程序?

在 Android TV 显示器上共享 URI/文本 打开蓝牙对话框

将本地共享地理位置与其他设备进行反应

Android之contentProvider共享数据