在Android中将Sqlite数据库作为电子邮件附件发送

在Android中将Sqlite数据库作为电子邮件附件发送,第1张

概述我有一个简单的应用程序,我用它来发送附件.我已经设法从SD卡发送文本文件(虽然我无法使用openFileOutput(fileName,0)使用在应用程序专用区域中创建的文件),但我现在想要发送数据库.通过调试,我可以验证数据库是否存在,并在其唯一的表中有一个条目.我要发送的代码如下所示:gmail

我有一个简单的应用程序,我用它来发送附件.

我已经设法从SD卡发送文本文件(虽然我无法使用openfileOutput(filename,0)使用在应用程序专用区域中创建的文件),但我现在想要发送数据库.

通过调试,我可以验证数据库是否存在,并在其唯一的表中有一个条目.我要发送的代码如下所示:

gmailbutton = (button) findVIEwByID(R.ID.button);gmailbutton.setonClickListener(new OnClickListener(){    @OverrIDe    public voID onClick(VIEw v)    {        Intent sendIntent = new Intent(Intent.ACTION_SEND);         sendIntent.putExtra(Intent.EXTRA_SUBJECT, "subject line");         sendIntent.putExtra(Intent.EXTRA_TEXT,"Body of email");         Uri uri = Uri.fromfile(getDatabasePath("TEST_DB"));        //uri = file:///data/data/com.gmailspike/databases/TEST_DB        sendIntent.putExtra(Intent.EXTRA_STREAM, uri);         sendIntent.setType("application/octet-stream");        startActivity(Intent.createChooser(sendIntent,"Email:"));    }})

;

但是,当电子邮件客户端打开时,附件的大小为0字节,如果我触摸打开附件,则客户端说无法找到该文件.

有任何想法吗?我不确定mime类型是否正确,或者即使它很重要!

解决方法:

我记得在尝试发送带有图片附件的电子邮件时,遇到了类似这样的问题,链接到存储在apps私有数据文件夹中的文件.附件刚刚丢失.

使用邮件意图打开一个新的应用程序来处理邮件创建.因此,您需要编写Content Provider以允许其他应用程序访问您的私人数据.

或者首先将内容复制到公共区域并从那里将其添加到邮件意图中(这仅适用于大多数手机都有SD卡的情况).在这种情况下可以使用External Storage.getExternalStorageDirectory().

希望这有助于找到解决方案.

总结

以上是内存溢出为你收集整理的在Android中将Sqlite数据库作为电子邮件附件发送全部内容,希望文章能够帮你解决在Android中将Sqlite数据库作为电子邮件附件发送所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存