我覺得寫文章就得寫得有用一些的,必須要有自己的思想,關(guān)于來電去電監(jiān)聽將按照下面三個問題展開
1、監(jiān)聽來電去電有什么用?
2、怎么監(jiān)聽,來電去電監(jiān)聽方式一樣嗎?
3、實(shí)戰(zhàn),有什么需要特別注意地方?
監(jiān)聽來電去電能干什么
1、能夠?qū)ΡO(jiān)聽到的電話做個標(biāo)識,告訴用戶這個電話是詐騙、推銷、廣告什么的
2、能夠針對那些特殊的電話進(jìn)行自動掛斷,避免打擾到用戶
來電去電的監(jiān)聽方式(不一樣的方式)
1、來電監(jiān)聽(PhoneStateListener)
來電監(jiān)聽是使用PhoneStateListener類,使用方式是,將PhoneStateListener對象(一般是自己繼承PhoneStateListener類完成一些封裝)注冊到系統(tǒng)電話管理服務(wù)中去(TelephonyManager)
然后通過PhoneStateListener的回調(diào)方法onCallStateChanged(int state, String incomingNumber) 實(shí)現(xiàn)來電的監(jiān)聽 (詳細(xì)實(shí)現(xiàn)可以參考后面給出的拓展閱讀部分)
注冊監(jiān)聽
// phoneServiceName是服務(wù)名,一般是 "phone" --> Context.TELEPHONY_SERVICE TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(phoneServiceName); if(telephonyManager != null) { try { // 注冊來電監(jiān)聽 telephonyManager.listen(mTelephonyListener, PhoneStateListener.LISTEN_CALL_STATE); } catch(Exception e) { // 異常捕捉 } }