首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:支持ACTION_GET_CONTENT和ACTION_OPEN_DOCUMENT时避免重复输入

Android:支持ACTION_GET_CONTENT和ACTION_OPEN_DOCUMENT时避免重复输入
EN

Stack Overflow用户
提问于 2016-04-22 00:50:41
回答 1查看 347关注 0票数 2

http://developer.android.com/guide/topics/providers/document-provider.html声明:

代码语言:javascript
复制
ACTION_OPEN_DOCUMENT is not intended to be a replacement for ACTION_GET_CONTENT.
The one you should use depends on the needs of your app:

Use ACTION_GET_CONTENT if you want your app to simply read/import data.
With this approach, the app imports a copy of the data, such as an image file.
Use ACTION_OPEN_DOCUMENT if you want your app to have long term, persistent access
to documents owned by a document provider. An example would be a
photo-editing app that lets users edit images stored in a document provider.

这表明大多数提供文件的应用程序都应该支持这两种意图类型。

但是,当应用程序同时支持ACTION_GET_CONTENT (通过其意图筛选器中的活动匹配)和ACTION_OPEN_DOCUMENT (通过实现文档提供程序)时,当将一个文件附加到Gmail时会显示两次。这是由于文件选择UI同时显示文档提供程序和ACTION_GET_CONTENT匹配器(后者在分隔器下面显示)。

是否有可能避免这种重复显示的应用程序,以避免混淆用户?

有关此问题的示例,请参见下面的屏幕截图和显示两次的Box条目:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-22 00:53:32

支持运行Android4.3及更低部分的设备的同一页上稍微向下一点

ACTION_OPEN_DOCUMENT意图仅适用于运行Android4.4及更高版本的设备。如果您希望应用程序支持ACTION_GET_CONTENT以适应运行Android4.3和更低版本的设备,您应该在清单中禁用运行Android4.4或更高版本的设备的ACTION_GET_CONTENT意图筛选器。文档提供程序和ACTION_GET_CONTENT应该被视为互斥的。如果您同时支持它们,您的应用程序将在系统选择器UI中出现两次,提供两种访问存储数据的不同方式。这将使用户感到困惑。

您所提到的部分是在客户端--连接到您的DocumentsProvider的应用程序可以同时使用ACTION_GET_CONTENTACTION_OPEN_DOCUMENT,因此您不再需要在Android4.4和更高版本的设备上使用ACTION_GET_CONTENT意图过滤器或活动。

他们建议基于版本代码(即在values-v19中)创建values-v19资源,这将允许您更改Manifest中的android:enabled值、禁用或启用基于Android的组件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36782844

复制
相关文章

相似问题

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