首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能分享我的android应用程序的pdf文件?

为什么我不能分享我的android应用程序的pdf文件?
EN

Stack Overflow用户
提问于 2021-12-14 07:06:58
回答 1查看 245关注 0票数 1

我在用

代码语言:javascript
复制
contentUri = ContentUris.withAppendedId(MediaStore.Files.getContentUri("external"), 
    data.id);
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
    shareIntent.putExtra(Intent.EXTRA_TEXT, body);
    shareIntent.setType(type); // application/pdf
    shareIntent.putExtra(Intent.EXTRA_STREAM, contentUri);
    shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    return shareIntent;

它正被分享给WhatsApp,当我选择一个联系人来分享我的文件时,WhatsApp中的祝酒词说:“共享失败。请再试一次。”

这是一个特定于设备的问题,发生在OEM中,如Oneplus、Redmi、Oppo,但在三星的Pixel工作得很好。

检查whatsapp日志中的问题如下:

代码语言:javascript
复制
### begin stack trace 2.21.22.26(331416392)
2021-11-30 17:48:28.775 LL_I W [61502:WhatsApp Worker #6] mediafileutils/getfilefrommediastore/timer/mark/file searched: 100
2021-11-30 17:48:28.779 LL_W W [61502:WhatsApp Worker #6] mediafileutils/getfilefrommediastore/file-not-found; uri=content://media/external_primary/file/14344; exception=java.io.FileNotFoundException: open failed: EFAULT (Bad address)
java.io.FileNotFoundException: open failed: EFAULT (Bad address)
    at android.os.ParcelFileDescriptor.openInternal(ParcelFileDescriptor.java:344)
    at android.os.ParcelFileDescriptor.open(ParcelFileDescriptor.java:231)
    at X.31v.A0F(:387401)
    at X.3KQ.A06(:449668)
    at X.0Mu.A09(:89132)
    at X.3TG.doInBackground(:488495)
    at android.os.AsyncTask$3.call(AsyncTask.java:394)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at X.03A.run(:32737)
    at java.lang.Thread.run(Thread.java:923)

2021-11-30 17:48:28.806 LL_I W [2:main] redraw:1080 | 1955
2021-11-30 17:48:28.838 LL_I W [2:main] app/send-presence-subscription jid=9749@s.whatsapp.net
2021-11-30 17:48:28.838 LL_I W [2:main] MessageClient/sendXmpp; type=12
### end stack trace

编辑:附加logcat

2021-12-15 01:03:37.190 5053-14983/?E/MediaProvider:无法找到文件: /storage/emulated/0/Documents/MyFolderName/bikeev.pdf java.io.FileNotFoundException: /storage/emulated/0/Documents/MyFolderName/bikeev.pdf在计算编辑范围时未找到:在内容上没有项目://media/external_primary/ com.android.providers.media.MediaProvider.getRedactionRangesForFuse(MediaProvider.java:8041)在com.android.providers.media.MediaProvider.onFileOpenForFuse(MediaProvider.java:8257) 2021-12-1501:03:37.191-20536/?E/om.whsapp.w4:无效ID 0x00000000。

任何人都知道我如何解决这个问题

EN

回答 1

Stack Overflow用户

发布于 2022-09-02 14:16:25

更改putExtra:

代码语言:javascript
复制
putExtra(Intent.EXTRA_STREAM,FileProvider.getUriForFile(this,"${BuildConfig.APPLICATION_ID}.provider", file))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70344930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档