按联系人应用程序中的通话按钮时,我想启动自己的应用程序来拨打电话。我发现这样做的唯一方法是使用一个侦听NEW_OUTGOING_CALL广播的接收器。但这很丑陋,意味着所有呼叫都通过我的接收器进行路由。
目前我已经在DIAL,CALL和CALL_BUTTON意图上注册了多个intent-filters,但没有一个......我正在使用Android 7测试三星Galaxy S7。
答案 0 :(得分:0)
我认为使用广播接收器实际上是推荐的方式。实际上无法更改调用应用程序;这几乎与操作系统有关。即使使用root设备,也会遇到问题。
答案 1 :(得分:0)
正如你写的那样: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
打开您的应用。