对于android的拨号流程,网上有很多帖子分析,基本上都会有如下的描述:
“如果是MO,会调用ConnectionService端的onCreateOutgoingConnection(),这个方法会被TelephonyConnectionService重写,最终在TelephonyConnectionService里面执行,TelephonyConnectionService是最终要实例化的类”
问题是,我真没有发现TelephonyConnectionService是在哪里被实例化的,没有实例化的话,为什么ConnectionService里面的onCreateOutgoingConnection会在TelephonyConnectionService里面执行
onCreateOutgoingConnection方法的重写问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
你知我知皆知 2024-08-07 01:49关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
如果你想要实现一个更复杂的功能(比如使用你的连接池),你可能需要自己定义一个ConnectionService类。但是请注意,Android系统默认已经包含了一个名为
TelephonyManager的类来管理电话功能。TelephonyManager类可以获取到手机的一些基本信息,并提供一些基本的功能,例如发送短信、拨打电话等。- 在
TelephonyManager类中,有一个createPhoneLine()方法,用于创建一个新的电话线程。你可以在这个方法上添加自定义逻辑,以满足你的需求。 - 然后你需要在
TelephonyConnectionService类中重写onCreateOutgoingConnection()方法。这个方法将被调用来初始化和配置电话线程。
以下是一个简单的例子:
public class TelephonyConnectionService extends ConnectionService { @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); // 创建电话线程并设置相关参数 PhoneThread phoneThread = new PhoneThread(this); phoneThread.start(); } } class PhoneThread extends Thread { private final Context context; public PhoneThread(Context context) { this.context = context; } @Override public void run() { // 执行你的业务逻辑 System.out.println("Running..."); } }在这个例子中,我们首先通过
Context对象来创建一个新的电话线程。然后,在onCreate()方法中,我们将线程启动起来。最后,当你调用start()时,run()方法将在后台运行直到线程结束。注意:这只是一个非常基础的例子,实际应用中你可能需要根据自己的需求进行更多的定制和优化。
解决 无用评论 打赏 举报