一 TelephonyManager
TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、
电信网络的状态及手机用户的信息。在应用程序中可以使用这些get方法获取相关数据。
TelephonyManager类的对象可以通过:Context.getSystemService(Context.TELEPHONY_SERVICE)方法来获得,
需要注意的是有些通讯信息的获取对应用程序的权限有一定的限制,在开发的时候需要为其添加相应的权限。
TelephonyManager不是一个Framework层Service,属于Context中,对于每一个应用程序中都存在。
看一下TelephonyManager类结构:
看到是对三个Framework层的Service,远程代理对象完成对状态信息的获取。
二 PhoneInterfaceManager
实现ITelephony接口,就是Framework层Telephony的相关接口,实现对Phone的控制操作。
这个类的实现确实在PhoneApp中完成,但是实现了远程调用,加入到
ServiceManager中。
PhoneInterfaceManager构造函数:
private PhoneInterfaceManager(PhoneApp app, Phone phone) {
mApp = app;
mPhone = phone;
mCM = PhoneApp.getInstance().mCM;
mMainThreadHandler = new MainThreadHandler();
publish();
}
private void publish() {
ServiceManager.addService("phone", this);
}
TelephonyManager与 PhoneInterfaceManager应用:
来自:http://blog.163.com/my_ywj/blog/static/181203559201222384039340/