将 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 共享给其他应用时共享失败?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Xamarin Essentials Share 将应用程序链接共享给其他用户并在他们单击后打开应用程序?