我需要将我的应用作为打开特定文件类型的默认操作。我该如何控制?另外,我的应用程序如何访问正在打开的文件?
感谢。
答案 0 :(得分:3)
Intent提供了一种工具,用于在不同应用程序中的代码之间执行延迟运行时绑定。它最重要的用途是发起活动,它可以被认为是活动之间的粘合剂。它基本上是一个被动数据结构,包含要执行的动作的抽象描述。意图中的主要信息是:
action - 要执行的一般操作,例如ACTION_VIEW,ACTION_EDIT,ACTION_MAIN等。
数据 - 要操作的数据,例如联系人数据库中的人员记录,表示为Uri。
您的活动可以通过调用Activity#getIntent()
获取启动它的Intent,然后使用Intent#getData()
确定要打开的数据的网址。
您的清单应指定您的某个活动可以使用<intent-filter>
元素查看特定类型的数据。如果用户尝试查看此类数据,系统将确定系统上所有应用程序应该处理的活动。
如果只有一个应用程序能够查看数据,它将自动启动。如果多个应用程序可以处理意图,将向用户显示一个对话框,询问他们想要使用哪个应用程序,以及用于使该选择成为下次默认选项的复选框。用户可以从系统范围的设置中清除默认值。
正如Aidan所说,没有办法劫持违约。用户必须选择使您的应用程序默认处理该类型的数据。
答案 1 :(得分:0)
据我所知,您不能强制用户将您的应用程序设置为打开特定文件扩展名的默认设置。用户必须选择使您的应用程序成为默认应用程序。至于我不知道的第二个问题,但我想我会提供部分答案。 :)