Android 如何在打开电子邮件附件时获取文件名和扩展名

Android 如何在打开电子邮件附件时获取文件名和扩展名,android,android-contentprovider,Android,Android Contentprovider,我创建了一个意图过滤器,将我的活动与自定义文件扩展名关联。这一切正常:邮件应用程序启动我的活动的附件与自定义扩展名 在活动中,我阅读了如下意图: Uri uri = getIntent().getData(); 我可以打开inputstream OK,但我想知道附件的文件名和扩展名。有没有办法从Uri中得到这个 我试图通过光标获取这些信息,但邮件应用程序似乎只有两列:_id和_data,而不是与文件名和/或扩展名相关的内容 我知道我无法访问实际文件,但需要知道文件名。如果使用给定Uri执行查询

我创建了一个意图过滤器,将我的活动与自定义文件扩展名关联。这一切正常:邮件应用程序启动我的活动的附件与自定义扩展名

在活动中,我阅读了如下意图:

Uri uri = getIntent().getData();
我可以打开inputstream OK,但我想知道附件的文件名和扩展名。有没有办法从Uri中得到这个

我试图通过光标获取这些信息,但邮件应用程序似乎只有两列:_id和_data,而不是与文件名和/或扩展名相关的内容


我知道我无法访问实际文件,但需要知道文件名。

如果使用给定Uri执行查询,光标有4列:
\u id
\u data
\u display\u name
\u size
\u display\u name
是扩展名为的文件名

来源:AOSP电子邮件应用程序

-查询附件Uri时使用的列

-附件提供程序实现