編輯:關於Android編程
把ITelephony.aidl放進來,然後通過反射TelephonyManager的getITelephony()方法獲取 ITelephony實例,進而調用如endCall()等方法來實現如果來電黑名單攔截等方式
eg:
在Android .0以後,Google 官方API開始支持多SIM卡,這對開發者來說是一件好事,意味著應用能夠實現的功能也越來越多。
在Lollipop上Google又新增了一個Isub.aidl的文件,從命名上就可以看出這是一個進程服務,所以在使用時和ITelephony.adil一樣,在自己的項目裡建立對應adil文件夾,把ISub.aidl拉進來就行了。使用時調用方式如下:
舉個例子,假設現在是一台雙卡雙待的手機系統是Lollipop,我們想知道現在使用的是哪一張卡作為流量卡,那麼久必須知道默認的流量的subId。具體方法是調用ISub.aidl的getDefaultDataSubId()。
對應的流量卡subId後則需要調用到TelephonyManager下的getSubscriberid(long subId)方法,但是這個方法有點坑的地方,就是在5.0的時候參數書long類型的,但是到了5.1的時候有換成了int類型,所以在使用時必須注意
具體使用
通過將系統的AIDL引入,還可以調用其他的方法來是顯示更多的功能。
在6.0上Google進一步開放了SIM卡相關的API我們可以使用SubscriptionManager這個API
這個使用管理類使用更簡單,類似於TelephonyManager。
獲取實例:
獲取默認數據卡信息:
獲取激活的SIM 卡數量:
,既然能獲得SIM卡的信息,那還有個重要的東西想要獲取,就是如何監聽兩張SIM的信號場強信息以及對應的基站鄰區信息。
在5.0以前這是無法做到的,因為5.0以前,PhoneStateListener這個方法只有一個不帶參數的構造函數,所以無法注冊監聽,但是到了5.0以後的版本就有了
但是一個大大的@hide就給你隔絕了監聽的可能。
而且連參數protected也加了@hide明顯是不對普通開發者開放的。
但是,我們都知道,反射是可以獲取到類的參數,當然也可以設置參數值。
具體設置方法,在繼承PhoneStateListener時實現構造函數
並且在構造函數中對監聽進行設置。
Android屏幕適配攻略
一、屏幕適配的必要性為什麼Android需要適配?由於Android系統的開放性,任何用戶、開發者、OEM廠商、運營商都可以對Android進行定制,修改成他們想要的樣子
android Watchdog 實現剖析
系統啟動過程圖: Framework層所有的Service都是運行在SystemServer進程中;SystemServer進程是由Zygote進程創建。 S
Yalantis/Context-Menu.Android
最近瞄到一個小項目….Yalantis/Context-Menu.Android打開這個項目,我只想看看那個動態展開的menu是怎麼實現的.忽
Android 開發:帶觸控的圖表(基金圖表的實現)
帶觸控的圖表類,後期會把這個功能類,添加到這個框架裡:效果如下public class BaseFundChartView extends View implements