【发布时间】:2018-01-17 15:18:50
【问题描述】:
按下通讯录应用中的通话按钮时,我想启动自己的应用进行通话。我发现的唯一方法是使用接收 NEW_OUTGOING_CALL 广播的接收器。但这很丑陋,意味着所有呼叫都通过我的接收器路由。
目前我已经在 DIAL、CALL 和 CALL_BUTTON 意图上注册了多个意图过滤器,但没有一个触发......我正在使用 Android 7 的三星 Galaxy S7 上进行测试。
【问题讨论】:
按下通讯录应用中的通话按钮时,我想启动自己的应用进行通话。我发现的唯一方法是使用接收 NEW_OUTGOING_CALL 广播的接收器。但这很丑陋,意味着所有呼叫都通过我的接收器路由。
目前我已经在 DIAL、CALL 和 CALL_BUTTON 意图上注册了多个意图过滤器,但没有一个触发......我正在使用 Android 7 的三星 Galaxy S7 上进行测试。
【问题讨论】:
正如您所写:When pressing the call button in the contacts app, I want to launch my own app. . . . 然后But this is ugly and means that all calls are routed through my receiver,这两个部分是对比的。
最好的方法(我认为唯一的一个,因为联系人应用程序不是“你的”,它归操作系统所有),就像你所做的那样,使用接收器。
我可以向您建议的是在您的onReceive 方法中添加一个自定义过滤器(以编程方式),并询问它何时醒来询问联系人是否是请求的联系人,然后通过Intent 打开您的应用程序。
【讨论】:
我相信使用广播接收器实际上是推荐的方法。实际更改调用应用程序是不可能的;这几乎与操作系统有关。即使使用有根设备,您也会遇到问题。
【讨论】: