我是靠谱客的博主 繁荣爆米花,最近开发中收集的这篇文章主要介绍模拟来电的实现实现虚拟的BaseCommands实现虚拟的ConnectionService,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

模拟来电这个功能其实Android原生就有实现,想想Android模拟器是可以来电或者拨号的吧。这个功能对于手机厂商的程序员来说,节省了大量调整UI的时间,不用去真的打电话来呈现UI。实现有两种方式:

实现虚拟的BaseCommands

这种方式也是Android5.0之前预留的方式。

frameworks/opt/telephony/src/java/com/android/internal/telephony/test/SimulatedCommands.java

public final class SimulatedCommands extends BaseCommands
implements CommandsInterface, SimulatedRadioControl
正常流程中BaseCommands的实现类是RIL.Java, 用这个SimulatedCommands替换掉Phone对象中的BaseCommands对象,然后framework中相关的数据源就成了虚拟的了,使用SimulatedRadioControl接口中的方法即可触发各种操作。

frameworks/opt/telephony/src/java/com/android/internal/telephony/test/SimulatedRadioControl.java

public interface SimulatedRadioControl
{
public void triggerRing(String number); //模拟来电
public void progressConnectingCallState();
public void progressConnectingToActive();
//拨号转接通
...
public void triggerHangupForeground(); //挂断前台通话
public void triggerHangupBackground();
public void triggerHangupAll();
...
/** Generates an incoming USSD message. */
public void triggerIncomingUssd(String statusCode, String message);
这种方式要对framework中的相关代码稍作修改,非手机厂商的同学使用这种方式比较麻烦。

实现虚拟的ConnectionService

Android5.0通讯架构大调整后,实现虚拟来电其实更方便了。这次不用修改framework层代码了,只要实现虚拟的ConnectionService。正常流程中这个是Telephony包下TelephonyConnectionService实现的,现在实现虚拟用的ConnectionService即可。

原生代码中Telecomm包下就有相关的实现,在testapps包下,这个是测试Telecomm包的测试程序,稍加修改即可实现虚拟来电。在testapps包中,不仅有TestConnectionService,还有TestInCallServiceImpl,虚拟来电是要使用真正的InCallUI的,所以在AndroidManifest.xml中要把相应的类注释掉


<!-- <service android:name="com.android.server.telecom.testapps.TestInCallServiceImpl"
android:process="com.android.server.telecom.testapps.TestInCallService"
android:permission="android.permission.BIND_INCALL_SERVICE" >
<intent-filter>
<action android:name="android.telecom.InCallService"/>
</intent-filter>
</service> -->
我这里手头上只有mtk的代码,还需要删除一些视频通话相关的代码程序才能跑起来,如果使用原生代码应该只要做上述一处修改就可以实现虚拟来电了。



最后

以上就是繁荣爆米花为你收集整理的模拟来电的实现实现虚拟的BaseCommands实现虚拟的ConnectionService的全部内容,希望文章能够帮你解决模拟来电的实现实现虚拟的BaseCommands实现虚拟的ConnectionService所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部