Android自動攔截與接聽功能APK黑白名單
自動接聽與掛斷調(diào)用關(guān)系如下

1. 首先在啟動apk初始界面的activity中,啟動service服務(wù),開始監(jiān)聽通話狀態(tài)(InCallService)
//啟動通話狀態(tài)監(jiān)聽服務(wù)
private void startCallListen() {
Intent intent = new Intent(CallAndMessageEntranceActivity.this, InCallService.class);
startService(intent);
}
2. 在通話監(jiān)聽服務(wù)中,監(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();
//獲取電話服務(wù)
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:來電號碼 依據(jù)來電號碼判斷黑白名單
private void splitWhiteAndBlack(String incomingNumber) {
//1.黑名單自動掛斷
mTelecomManager.endCall();
//2.白名單自動接聽
mTelecomManager.acceptRingingCall();
}
@Override
public void onDestroy() {
super.onDestroy();
}
到此這篇關(guān)于Android自動攔截與接聽功能APK黑白名單的文章就介紹到這了,更多相關(guān)Android攔截與接聽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
android中一些特殊字符(如:←↑→↓等箭頭符號)的Unicode碼值
這篇文章主要介紹了android中一些特殊字符(如:←↑→↓等箭頭符號)的Unicode碼值,需要的朋友可以參考下2017-03-03
Android高級xml布局之輸入框EditText設(shè)計
這篇文章主要為大家詳細介紹了Android高級xml布局之輸入框EditText設(shè)計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12
Android 自定義加載動畫Dialog彈窗效果的示例代碼
這篇文章主要介紹了Android 自定義加載動畫Dialog彈窗效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
Android實現(xiàn)滑動加載數(shù)據(jù)的方法
這篇文章主要介紹了Android實現(xiàn)滑動加載數(shù)據(jù)的方法,實例分析了Android通過滑動實現(xiàn)動態(tài)加載數(shù)據(jù)的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
Android應(yīng)用退出登錄的實現(xiàn)方法
每一個app都會有一個”退出登陸”的功能,當點擊退出之后需要將所有的Activity都finish掉,開始是想將棧中的所有Activity清除掉,但是沒有找到方法,后來用廣播實現(xiàn)了。下面小編給大家分享android應(yīng)用退出登錄的實現(xiàn)方法,需要的朋友參考下2017-04-04

