从API 21开始,Google一直在为android.telecom添加功能,特别是通过实现更多的TelecomManager成员和添加InCallService.最后一个应该允许非系统的第三方应用程序提供和替换系统Calls app in-call屏幕的功能 - 弹出的窗口允许操作EXTRA_STATE_OFFHOOK或EXTRA_STATE_RINGING广播(即传入和传出的电话呼叫) ).
目前,只有这个屏幕可以完全控制振铃和活动呼叫以及具有细粒度信息的相关系统回调,通过根限制MODIFY_PHONE_STATE权限和许多安全的AOSP代码甚至无法通过反射访问.它特别是不同制造商的ROM风格中最变化的代码之一,以及发射器,触点和相机.
这一切都非常漂亮,但......
你如何实际开发第三方InCallService?
即:
我不会立刻问所有这些问题的答案,但任何一个答案都可能与其他问题有关.这是广泛的,但本质上它需要是:在网络上没有任何例子我偶然发现了AOSP代码,而且该代码基于root权限的假设,这使得它无法用于第三方应用程序开发目的.