首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android4.1/4.3/4.4电子邮件应用程序中的FileProvider失败,并显示列'_data‘不存在

Android4.1/4.3/4.4电子邮件应用程序中的FileProvider失败,并显示列'_data‘不存在
EN

Stack Overflow用户
提问于 2016-01-05 00:55:35
回答 2查看 717关注 0票数 35

我有一个FileProvider,我使用它将SD卡上的文件附加到电子邮件中。

这在任何使用Intent的应用程序中的LollipopMarshmallow上都有效。

然而,在Android 4.3中,当使用Email应用程序时,附件在撰写时会出现在电子邮件中,但在发送时,附件在收件人端并不存在。对于所有其他经过测试的应用程序(Gmail、Evernote、Drive),它都可以正常工作。

在发送电子邮件之前,我不会删除该文件。

这是我的代码。

代码语言:javascript
复制
final Intent fileShareIntent = new Intent(android.content.Intent.ACTION_SEND);
fileShareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, emailSubject);
fileShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailText);
Uri fileUri = STFileProvider.getContentUriForProvidedFile(this,file);
fileShareIntent.putExtra(Intent.EXTRA_STREAM,fileUri);
fileShareIntent.setType(mimeType);
fileShareIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{prefs.getString("default_email_preference", "")});
startActivity(Intent.createChooser(fileShareIntent,getString(R.string.share_with)));

编辑我发现了一个异常的堆栈跟踪,它与@CommonsWare的建议是内联的

代码语言:javascript
复制
01-04 17:39:00.430 6828-6828/? W/System.err: java.lang.IllegalArgumentException: column '_data' does not exist
01-04 17:39:00.430 6828-6828/? W/System.err:     at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:303)
01-04 17:39:00.430 6828-6828/? W/System.err:     at android.database.CursorWrapper.getColumnIndexOrThrow(CursorWrapper.java:78)
01-04 17:39:00.430 6828-6828/? W/System.err:     at com.android.email.activity.MessageCompose.getFilePath(MessageCompose.java:21476)
01-04 17:39:00.430 6828-6828/? W/System.err:     at com.android.email.activity.MessageCompose.getFilePathOfAttachment(MessageCompose.java:17710)
01-04 17:39:00.430 6828-6828/? W/System.err:     at com.android.email.activity.MessageCompose.addAttachment(MessageCompose.java:19140)
01-04 17:39:00.430 6828-6828/? W/System.err:     at com.android.email.activity.MessageCompose.access$11000(MessageCompose.java:362)
01-04 17:39:00.430 6828-6828/? W/System.err:     at com.android.email.activity.MessageCompose$LoadAttachmentsTaskFromIntent.onProgressUpdate(MessageCompose.java:15277)
01-04 17:39:00.430 6828-6828/? W/System.err:     at com.android.email.activity.MessageCompose$LoadAttachmentsTaskFromIntent.onProgressUpdate(MessageCompose.java:15101)
01-04 17:39:00.430 6828-6828/? W/System.err:     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:647)
01-04 17:39:00.430 6828-6828/? W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
01-04 17:39:00.430 6828-6828/? W/System.err:     at android.os.Looper.loop(Looper.java:176)
01-04 17:39:00.430 6828-6828/? W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5419)
01-04 17:39:00.430 6828-6828/? W/System.err:     at java.lang.reflect.Method.invokeNative(Native Method)
01-04 17:39:00.430 6828-6828/? W/System.err:     at java.lang.reflect.Method.invoke(Method.java:525)
01-04 17:39:00.430 6828-6828/? W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
01-04 17:39:00.430 6828-6828/? W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
01-04 17:39:00.430 6828-6828/? W/System.err:     at dalvik.system.NativeStart.main(Native Method)
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34595995

复制
相关文章

相似问题

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