意图在2.3.3之前的Android API级别的setType(“messagerfc822”)

意图在2.3.3之前的Android API级别的setType(“messagerfc822”),第1张

概述我有一个设置类型“message/rfc822”的问题,意图在Android模拟器上发送带有文件附件的电子邮件.我必须使用setType(“message/rfc822”),因为文件没有标准的MIME类型(sqlite数据库),我试图避免选择列表中的很多应用程序供用户选择.对于2.3.3之前的所有API级别,我有一个错误:ja

我有一个设置类型“message / rfc822”的问题,意图在Android模拟器上发送带有文件附件的电子邮件.我必须使用setType(“message / rfc822”),因为文件没有标准的MIME类型(sqlite数据库),我试图避免选择列表中的很多应用程序供用户选择.对于2.3.3之前的所有API级别,我有一个错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{my.cashwatcher/my.cashwatcher.SendEmailActivity}: androID.content.ActivityNotFoundException: No Activity found to handle Intent { act=androID.intent.action.SEND typ=message/rfc822 (has extras) }

在API Level 2.3.3的情况下,代码工作正常并且不会出现错误.这是AndroID模拟器还是旧API的问题!?

码:

Intent sendIntent = new Intent(Intent.ACTION_SEND);                         sendIntent.setType("message/rfc822");            sendIntent.putExtra(Intent.EXTRA_EMAIL , new String[]{appPrefs.getEmail("email")});                   sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromfile(new file(Environment.getExternalStorageDirectory(), DATABASE_PATH)));sendIntent.putExtra(Intent.EXTRA_TEXT, "body_of_email"); sendIntent.putExtra(Intent.EXTRA_SUBJECT, "APPliCATION_name");startActivityForResult(sendIntent, EMAIL_SEND_RESulT);

解决方法:

首先,“为了避免选择列表中的大量应用程序供用户选择”,请使用ACTION_SENDTO和mailto:Uri.

其次,您所遇到的不是“AndroID模拟器的问题”,也不是“旧的API”.您需要1个能够处理ACTION_SEND Intent和MIME类型message / rfc822的应用程序.无法保证任何给定设备都支持该组合,更不用说任何给定的仿真器了.您的代码需要处理它,就像您使用ACTION_GOBBLEDYGOOK或MIME类型thisis / sonotreal或其他.

总结

以上是内存溢出为你收集整理的意图在2.3.3之前的Android API级别的setType(“message / rfc822”)全部内容,希望文章能够帮你解决意图在2.3.3之前的Android API级别的setType(“message / rfc822”)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存