Android自動攔截與接聽功能APK黑白名單
更新時間:2021年12月29日 15:23:52 作者:perfectxiannv
大家好,本篇文章主要講的是Android自動攔截與接聽功能APK黑白名單,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
自動接聽與掛斷調用關系如下

1. 首先在啟動apk初始界面的activity中,啟動service服務,開始監(jiān)聽通話狀態(tài)(InCallService)
//啟動通話狀態(tài)監(jiān)聽服務
private void startCallListen() {
Intent intent = new Intent(CallAndMessageEntranceActivity.this, InCallService.class);
startService(intent);
}
2. 在通話監(jiān)聽服務中,監(jiān)聽通話狀態(tài),當通話狀態(tài)為CALL_STATE_RINGING時處理通話。
public class InCallService extends Service {
private TelecomManager mTelecomManager;
private TelephonyManager mTelephonymanager;
MyPhoneStateListener mMyPhoneStateListener = new MyPhoneStateListener();
@Override
public void onCreate() {
Log.e("InCallService", "onCreate()");
super.onCreate();
//獲取電話服務
mTelecomManager = (TelecomManager) getSystemService(Context.TELECOM_SERVICE);
mTelephonymanager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (mTelephonymanager == null) {
mTelephonymanager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
}
mTelephonymanager.listen(mMyPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
return super.onStartCommand(intent, flags, startId);
}
//監(jiān)聽通過話
public class MyPhoneStateListener extends PhoneStateListener {
@RequiresApi(api = Build.VERSION_CODES.P)
@Override
public void onCallStateChanged(int state, final String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
//通話空閑狀態(tài)
break;
case TelephonyManager.CALL_STATE_RINGING:
//通話來電狀態(tài)
try {
Log.e("C_M_BlackCallService", "Monitor incoming calls");
//攔截來電判斷來電時黑名單or白名單
splitWhiteAndBlack(incomingNumber);
} catch (Exception e) {
e.printStackTrace();
}
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
//電話掛起狀態(tài)
break;
}
}
}
//incomingNumber:來電號碼 依據來電號碼判斷黑白名單
private void splitWhiteAndBlack(String incomingNumber) {
//1.黑名單自動掛斷
mTelecomManager.endCall();
//2.白名單自動接聽
mTelecomManager.acceptRingingCall();
}
@Override
public void onDestroy() {
super.onDestroy();
}
到此這篇關于Android自動攔截與接聽功能APK黑白名單的文章就介紹到這了,更多相關Android攔截與接聽內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android 使用Vitamio打造自己的萬能播放器(8)——細節(jié)優(yōu)化
本文主要介紹Android Vitamio開發(fā)播放器,這里給大家提供了一些小的細節(jié)優(yōu)化,更加完善播放器的功能,希望能幫助有需要的小伙伴2016-07-07
Android 中使用 ViewPager實現屏幕頁面切換和頁面輪播效果
ViewPager是谷歌官方給我們提供的一個兼容低版本安卓設備的軟件包,里面包囊了只有在安卓3.0以上可以使用的api。下面我們就展示下ViewPager可以實現的兩種簡單效果,感興趣的朋友一起看看吧2016-12-12

