我在用
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日志中的问题如下:
### 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。
任何人都知道我如何解决这个问题
发布于 2022-09-02 14:16:25
更改putExtra:
putExtra(Intent.EXTRA_STREAM,FileProvider.getUriForFile(this,"${BuildConfig.APPLICATION_ID}.provider", file))https://stackoverflow.com/questions/70344930
复制相似问题