Email 下载音频附件完成后播放不显示名称
来源:互联网 发布:面向对象编程 java 编辑:程序博客网 时间:2024/04/29 10:52
#0001281
【操作步骤】
电子邮件-收件箱-进入邮件查看详情界面-附件-音频附件-下载成功后直接点击播放-弹出播放器开始播放【预期结果】
播放时应能够显示歌曲名称
【实际结果】
播放时不显示名称信息
原因:当打开邮件时,附件已经下载完成,存在database下的文件夹里,附件相关信息存在了Attachment表里,当点击播放时把缓存文件的Uri传给了音乐播放器,音乐播放器没根据Uri查找获取到_display_name,就显示Uri的最后一段作为名字。
解决方法:在AttachmentProvider里的query方法里给projection增加一个查询项Columns.DISPLAY_NAME。
解决方法原理:
1.Provider原理:
查询附件通过AttachmentProvider,其authorities="com.android.email.attachmentprovider"。当查询这个Provider时如果查询列为null,则查询列定为查询Columns._ID、Columns.DATA、Columns.MIMETYPE,我加了一项Columns.DISPLAY_NAME,接着拆分Uri,得到id,并查询EmailProvider得到mimetype。
接着查询AUTHORITY = "com.android.email.provider"的EmailProvider,查询字段为定义好了的AttachmentColumns.FILENAME、AttachmentColumns.SIZE、AttachmentColumns.CONTENT_URI,uri为EmailContent.CONTENT_URI + "/attachment/"+id。
获取返回结果name、size、contentUri,new一个MatrixCursor对象字段取自projection,给这个对象的列赋查询到的值,返回这个cursor。
2.调用流程:
当点击播放时,调用MessageViewFragmentBase类的onOpenAttachment方法。里面这个Intent的data是会变化的,如果保存了,Uri为"file:",否则为“content:”,变化还没明白。接着音乐播放器的AudioPreview会被调用,返回的cursor中_display_name为音乐名字。
- Email 下载音频附件完成后播放不显示名称
- phpcms v9附件上传后显示链接名称如何改为附件名称?
- Email附件下载流程分析
- Eclipse 下载插件Pydev(解决安装完成后eclipse不显示的问题)
- 上传附件后无法下载,显示找不到文件
- Email小案例改进版——解决带附件不显示邮件正文问题
- 发送email(不带附件)
- Email下载附件走如下流程
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(一,添加附件)
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(三,接收彩信<2,下载彩信>)
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(二,发送彩信<1>)
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(二,发送彩信<2>)
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(三,接收彩信<1,接收短信>)
- 关于uitableviewcell上增加button,点击后播放音频,想让音频播放完成后更改button状态的解决方:
- ScrollView嵌套GridView,加载完成后默认不显示顶部
- ScrollView嵌套GridView,加载完成后默认不显示顶部
- iis安装完成后,管理工具中不显示,解决方案
- Endnote安装完成后,word2013工具栏不显示解决方法
- rand()函数
- 如何命名 —— 《clean code》读后感
- 激励自己的名言警句
- Cocos2d-x CCHttpRequest联网
- 高效显示图片
- Email 下载音频附件完成后播放不显示名称
- 在Linux下运行Tomcat
- 迅雷的一笔试题:有一个数组,长度为10,有两个线程,一个往里增加数,一个往外删除数
- QT信号与槽
- PaginationSupport 分页
- 如何向App Store提交应用
- 关于oracle的&字符的处理
- 性能测试知多少----性能测试分类之我见
- [linux]打开linux中某个端口