一 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/