如果我想创建自定义地址簿(它会覆盖我手机的默认地址簿),如果我希望所有应用程序使用它,那么intent-filter
应该是什么?考虑到这样的第三方应用程序可能是恶意的,Android是否允许我做这样的事情?!
而且,如果我想要另一个地址簿应用程序,我想第二个应用程序也有相同的intent-filter
,不是吗?如果在拨打电话时单击“联系人”按钮,框架如何决定选择哪个应用程序?换句话说,如果多个intent-filters
之间存在冲突,框架如何解析意图?
答案 0 :(得分:3)
您可以替换Android平台上的任何应用程序,甚至是Home。 Android文档解释了有关Intents and Intent Filters的所有信息,并且有一个名为Intent Resolution的部分可以回答您的问题。 Intent类的意图解析部分提供了一些其他信息。
据我所知,Android不会尝试解决冲突。它询问用户运行哪个应用程序,并让他们选择将此Activity标记为此Intent的默认值。他们举了一个关于邮件应用here的例子。
答案 1 :(得分:0)
虽然Smiljanić先生基本上是正确的,但Android中没有联系人应用程序供您替换。有拨号,这是支持联系人,呼叫日志和拨号器的应用程序。该应用程序无法替换,主要是因为拨号器无法更换。
因此,虽然您可以覆盖某些意图过滤器并控制某些与联系人相关的请求,但您将无法覆盖Dialtacts的联系人部分,这会使用户感到困惑。